我无法理解这一点...我有一个与我同一网络托管的SMTP服务器,我可以ping它并尝试发送电子邮件,但实际的电子邮件永远不会通过。我正在使用node_mailer ...在回调期间没有返回错误...服务器上没有身份验证,因为它只在内部使用,我不确定这是否可能是问题的一部分。它通过ASP工作,但我想让它与Node.js一起使用
我的脚本基本上就是这样:
email.send({
host : "theaddressoftheserver(can ping)",
port : "25",
domain : "theaddressoftheserver(can ping)",
to : "Some@internalEmail.com",
from : "Some@internalEmail.com",
subject : "Test",
body: "Test"
},
function(err, result){
if(err) console.log(err);
else console.log("Appears to have sent...");
});
答案 0 :(得分:0)
我建议您使用Postmark。
Postmark帮助小型和大型Web应用程序提供和跟踪交易电子邮件。不用担心设置,交付和服务器维护。我们已经擅长这一点。
Node.js已经有两个Postmark库。
示例强>
var postmark = require("postmark")("YOURAPIKEY");
postmark.send({
"From": "donotreply@example.com",
"To": "target@example.us",
"Subject": "Test",
"TextBody": "Test Message"
});
答案 1 :(得分:0)
我最近回答了一个类似的问题,它可能对您有所帮助:
https://stackoverflow.com/a/12623787/340736
不幸的是,很难确切地知道问题所在。 ASP脚本是否在同一台服务器上?您是否尝试过针对服务器和sending it manually运行telnet?节点进程是否有防火墙限制?
我想到的一件事是,如果您说您的ASP脚本有效,并且您的SMTP服务器不使用身份验证。但它可能就是这样,并且它冒充你的用户(运行ASP进程的用户)并使用它进行身份验证(AD身份验证)..
只是猜测。
答案 2 :(得分:0)
我想到了node_mailer可以通过gmail帐户发送电子邮件。我用过代码,
const transporter = createTransport({
service: gmail,
auth: {
user: process.env.MAILADDRESS,
pass: process.env.MAILPASSWORD
}
});
let mailOptions = {
from: process.env.MAILADDRESS,
to: recipient@email.com,
subject: 'verification code for verify email',
text: 'verification code
}
transporter.sendMail(mailOptions, function(err, info){
if (err) {
// something
} else {
// something
}
})
这很简单。为了完成这项工作,我必须先确保Gmail帐户的Less secure app access
处于启用状态,然后再使用该电子邮件。我说的是我要发送电子邮件的电子邮件。 (发件人的电子邮件)。
所以我的意思是,如果您的SMTP服务器上有任何安全选项托管在同一网络上,则需要将其关闭,以便node_mailer使用电子邮件地址。