我使用下面的代码通过Nodemailer发送注册验证电子邮件,结果发现我的一些客户没有收到任何东西,或者电子邮件变成了垃圾邮件。其他一些客户端可以正常接收电子邮件。我询问了谷歌的支持人员,但他们说,同样的电子邮件不可能进入一些用户的垃圾邮件文件夹和其他用户的收件箱文件夹。这就是为什么我在这里感到困惑的原因。
顺便说一句,谷歌与我确认,DKIM和其他验证是好的。并且发送的电子邮件已经到达这些客户的邮箱。但如果没有他们的批准,谷歌不知道电子邮件是否真的存在,或者是否被发送到垃圾邮件文件夹。
function registerEmailSender(firstName, lastName, email, uuid) {
console.log('registerEmailSender is triggered');
console.log('email: ', email);
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'info@mydomain.com', // generated ethereal user
pass: 'mypassword' // generated ethereal password
},
});
const html = `
Hi ` + firstName + `,<br>
<br>
Please click the link to active your account: <a href="https://www.google.com/url?q=https://example.com/sessions/email-verification/` + uuid + `">https://example.com/sessions/email-verification/` + uuid + `</a><br>
<br>
Sincerely, <br>
My Team<br>
`
const mailOptions = {
from: 'My Email <info@mydomain.com>', // sender address
to: email, // list of receivers
subject: 'Happy to have you here', // Subject line
html: html
};
return transporter.sendMail(mailOptions, function (err, info) {
console.log('sendMail is triggered');
// if(err)
// console.log('Error occurs: ', err)
// else
// console.log('Email sent: ', info);
if(err) {
console.log('Error occurs: ', err)
}
else {
console.log('Email sent: ', info);
}
});
}发布于 2020-11-28 23:09:24
事实证明,nodemailer并不是很可靠,因为除非你的服务器本身被谷歌信任,否则它不会被认为是一个“可信的应用”。这似乎会降低你的声誉,并导致电子邮件被拒绝。
目前我能找到的最好的解决方案是使用像Mailchimp这样的付费邮件服务。如果没有必要,请不要使用Nodemailer。
https://stackoverflow.com/questions/64047787
复制相似问题