243222f25042a4367944c84f9db694b89b839c7a
[motion.git] / server / config / triggers / mail.js
1 var _ = require('lodash');
2
3 function Mail() {
4   console.log('Trigger Mail Initialization...');
5 }
6
7 Mail.prototype.sendTemplate = function(templateId) {
8   sendTemplate(templateId);
9 }
10
11 function sendTemplate(templateId, smtpUser) {
12   var sequelize = require('../../models').sequelize;
13   var MailTemplate = require('../../models').MailTemplate;
14   var MailMessage = require('../../models').MailMessage;
15   var smtpInstances = require('../smtp').instances;
16   MailTemplate
17     .findById(templateId, {
18       include: [{
19         all: true
20       }]
21     })
22     .then(function(mailTemplate) {
23       // console.log('found template');
24       MailMessage
25         .create({
26           status: 'SENDING',
27           subject: mailTemplate.subject,
28           from: mailTemplate.from,
29           to: mailTemplate.to,
30           cc: mailTemplate.cc || '',
31           html: mailTemplate.html || null,
32           text: mailTemplate.text || null
33         })
34         .then(function(mailmessage) {
35           var smtp = _.find(smtpInstances, {
36             user: smtpUser
37           });
38           if (smtp) {
39             smtp.smtp.send(mailmessage);
40           }
41         })
42         .catch(function(err) {
43           console.log(err);
44         });
45     });
46 }
47
48 module.exports = Mail;