Bis*_*ass 1 ejs node.js nodemailer
我有一个 node.js 应用程序,我想每天早上 8 点从这个应用程序向少数人发送一封 HTML 电子邮件。我有一个dashboard.ejs 文件,它从数据库中获取一些数据并在引导仪表板模板中显示它们。我想将此dashboard.ejs 作为HTML 电子邮件发送,其中包含数据库中的所有数据,并且样式与从应用程序加载该dashboard.ejs 时相同。
我已准备好 cron 作业和邮件程序功能。我无法做的就是通过电子邮件将dashboard.ejs 文件作为HTML 发送。这可以吗?如果是,任何帮助将不胜感激。
var mailer = require('express-mailer');
var CronJob = require('cron').CronJob;
mailer.extend(app, {
from: 'user@gmailcom',
host: 'smtp.gmail.com',
secureConnection: true;
port: 465, // port for secure SMTP
transportMethod: 'SMTP',
auth: {
user: 'user@gmail.com',
pass: 'password'
}
});
var job = new CronJob('00 49 * * * *', function() {
console.log('This runs on 49th second of every min every hour every day every month every year')
app.mailer.send('dashboards/dashboard', {
to: 'user2@gmail.com',
subject: 'TEST EMAIL',
message:'Hello World'
},
function(err) {
if(err)
console.log('ERROR', err);
}
);
},
function() {
console.log('This function is executed when job stops');
},
false,
'Asia/Kolkata'
);
job.start();
Run Code Online (Sandbox Code Playgroud)
除非您将其构建到现有的 Express 应用程序中,否则我不鼓励这种方法。除了视图引擎之外,您在上面的示例中并没有真正使用 express 。
与其使用 Express,不如选择您需要的部分并使用它。您可以ejs直接使用.html 生成带有数据的 html ejs.renderFile()。然后用于nodemailer发送电子邮件(express-mail用于为您发送电子邮件)。
const ejs = require('ejs');
const nodemailer = require('nodemailer');
const CronJob = require('cron').CronJob;
const template = './dashboards/dashboard.ejs';
const transport = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
user: 'user@gmail.com',
pass: '*'
}
});
const job = new CronJob('00 49 * * * *', function() {
let templateData = {
name: 'Test Name'
};
ejs.renderFile(template, templateData, (err, html) => {
if (err) console.log(err); // Handle error
console.log(`HTML: ${html}`);
let mailOpts = {
from: 'user@gmail.com',
to: 'recipient',
subject: 'EJS Test File',
html: html
};
transport.sendMail(mailOpts, (err, info) => {
if (err) console.log(err); //Handle Error
console.log(info);
});
});
}, () => {
console.log('This function is executed when job stops');
},
false,
'Asia/Kolkata'
};
job.start();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2874 次 |
| 最近记录: |