summaryrefslogtreecommitdiff
path: root/server/lib/auth/mail.js
blob: a4abccd63cb7fd745d181793e23ce6093c4e4960 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
var email = require("emailjs"),
	ejs = require("ejs"),
	fs = require("fs"),
	util = require("../util");

var mail = {
	
	from: 'Vvalls <info@vvalls.com>',
	templates: {},
	
	init: function(){
		var names = ["welcome","password"].forEach(function(name){
			mail.templates[name] = {};
			var types = ["text","html"].forEach(function(type){
				fs.readFile("views/mail/" + name + "." + type + ".ejs", function(err, data){
					mail.templates[name][type] = ejs.compile(data.toString())
				})
			})
		})
	},
	
	connect: function(){
		var server = email.server.connect({
			user: process.env.OKFOCUS_EMAIL_USERNAME, 
			password: process.env.OKFOCUS_EMAIL_PASSWORD, 
			host: "smtp.sendgrid.net", 
			ssl: true
		})
		return server
	},
	
	send: function(msg, cb){
		var server = mail.connect()
		server.send(msg, cb)
	},
	
	welcome: function(user, cb){
		var message = {
			 text:    mail.templates.welcome.text(user),
			 from:    mail.from,
			 to:      user.email,
			 subject: "Welcome to Vvalls",
			 attachment: [
					{ data: mail.templates.welcome.html(user), alternative: true },
			 ]
		};
		mail.send(message, cb)
		console.log("sent welcome email to", user.email)
	},
	
	forgotPassword: function(user, cb){
		var message = {
			 text:    mail.templates.password.text(user),
			 from:    mail.from, 
			 to:      user.email,
			 subject: "Recover your password",
			 attachment: [
					{ data: mail.templates.password.html(user), alternative: true },
			 ]
		}
		mail.send(message, cb)
		console.log("sent password email to", user.email)
	},
}

module.exports = mail