我正在使用nodemailor通过node和express应用程序发送电子邮件。
问题:当我跨域发送电子邮件时,例如:我正在使用 Hostgator 电子邮件服务器,它仅使用 Hostgator 在托管电子邮件上发送电子邮件,但当我在 Gmail 上发送电子邮件时,它将返回成功
250 OK id=1hU5l2-000m0C-Lh
但收不到电子邮件。
注意:跨域时收到成功回复但收不到邮件
const nodemailer = require('nodemailer');
const keys = require('../config/keys');
const smtpTransport = require('nodemailer-smtp-transport');
emailCredentaials = (data) => {
var transporter = nodemailer.createTransport(smtpTransport ({
host: 'my.hostgator.com',
port: 465,
secure:true,
auth: {
user: keys.email.emailUserName,
pass: keys.email.emailPassword
},
tls: {
// do not fail on invalid certs
rejectUnauthorized: false
}
}));
var mailOptions = {
from: keys.email.emailUserName,
to: data.email,
subject: 'Demo account credentials',
html: '<h3>Please Follow the link to login : '
+ keys.emailLinks.accountCredentailLink + '<h3>' + '<br>Useraname : ' + data.email + '</br><br> Password : ' + data.password + '</br>'
};
transporter.sendMail(mailOptions, function (error, info) {
if (error) {
console.log("***********" + error);
} else {
console.log('*********Email sent:********' + info.response);
}
});
}
module.exports = emailCredentaials;
我对 nodemailor 使用了上述配置。谢谢
经过大量挖掘后,我终于得到了以下答案,如果有人遇到同样的问题,请尝试以下解决方案。我添加了以下配置。
const nodemailer = require('nodemailer');
const keys = require('../config/keys');
const smtpTransport = require('nodemailer-smtp-transport');
emailCredentaials = (data) => {
var transporter = nodemailer.createTransport(smtpTransport({
name: 'hostgator',
host: 'my.hostgator.com',
port: 465,
secure: true,
auth: {
user: keys.email.emailUserName,
pass: keys.email.emailPassword
}
}));
var mailOptions = {
from: keys.email.emailUserName,
to: data.email,
subject: 'Demo account credentials',
html: '<h3>Please Follow the link to login : '
+ keys.emailLinks.accountCredentailLink + '<h3>' + '<br>Useraname : ' + data.email + '</br><br> Password : ' + data.password + '</br>'
};
transporter.sendMail(mailOptions, function (error, info) {
if (error) {
console.log("***********" + error);
} else {
console.log('*********Email sent:********' + info.response);
}
});
}
module.exports = emailCredentaials;
发布问题的更改:
npm install --save nodemailer-smtp-transport
var transporter = nodemailer.createTransport(smtpTransport({
name: 'hostgator',
host: 'my.hostgator.com',
port: 465,
secure: true,
auth: {
user: keys.email.emailUserName,
pass: keys.email.emailPassword
}
}));
道具主机的值为“my.hostgator.com”,这是一个示例吗?我已经被困在这个问题里两天了:/