【发布时间】:2018-01-16 14:59:03
【问题描述】:
第一次使用 Node 并使用电子邮件配置。我下载了这个application from here,它可以工作(使用 mustache.js 为电子邮件生成模板),但测试电子邮件最终出现在我的 gmail 垃圾邮件中。
from: via vps1234.inmotionhosting.com
to: thisisme@gmail.com
date: Tue, Aug 8, 2017 at 5:30 PM
subject: Thanks! and review your experience
mailed-by: vps1234.inmotionhosting.com
security: Standard encryption (TLS) Learn more
-
var nodemailer = require('nodemailer');
let transporter = nodemailer.createTransport({
service: ' ',
secure: false,
port: 25,
auth: {
user: 'thisisme@mydomain.com',
pass: 'password1234'
},
tls: {
rejectUnauthorized: false,
}
}),
EmailTemplate = require('email-templates').EmailTemplate,
path = require('path'),
Promise = require('bluebird');
let users = [
{
name: 'John',
note: 'I found your purse',
email: 'recipient@gmail.com',
}
];
function sendEmail (obj) {
return transporter.sendMail(obj);
}
function loadTemplate (templateName, contexts) {
let template = new EmailTemplate(path.join(__dirname, 'templates', templateName));
return Promise.all(contexts.map((context) => {
return new Promise((resolve, reject) => {
template.render(context, (err, result) => {
if (err) reject(err);
else resolve({
email: result,
context,
});
});
});
}));
}
loadTemplate('welcome', users).then((results) => {
return Promise.all(results.map((result) => {
sendEmail({
to: result.context.email,
from: 'Me :)',
subject: result.email.subject,
html: result.email.html,
text: result.email.text,
});
}));
}).then(() => {
console.log('Yay!');
});
这是 Nodemailer 样板,我也在我的服务器上进行了测试,它工作正常,电子邮件没有被标记:
var nodemailer = require('nodemailer');
let transporter = nodemailer.createTransport({
service: ' ',
secure: false,
port: 25,
auth:{
user: 'thisisme@mydomain.com',
pass: 'password1234'
},
tls: {
rejectUnauthorized: false,
}
});
let helperOptions = {
from: '<thisisme@mydomain.com>',
to: 'recipient1234@gmail.com',
};
transporter.sendMail(helperOptions, (error, info) =>{
if(error){return alert(error);}
console.log("sent" . info);
})
【问题讨论】:
-
一般来说,从您自己的 Web 服务器发送电子邮件是个坏主意,您见过 Amazon SES 或 Mailgun 吗?这些服务将提供 SMTP 端点来发送电子邮件(它们会完成所有涉及不被标记为垃圾邮件的繁重工作)
标签: node.js email nodemailer