sko*_*rec 1 email postfix-mta smtp node.js nodemailer
我有使用nodejs模块nodemailer通过smtp服务器远程发送的问题
host: 'mail.5cpa.ru'
port: 587
secure: false (true tried also)
Run Code Online (Sandbox Code Playgroud)
smtp服务器是我的,我可以通过thenderbird发送邮件,使用相同的设置
日志
server 220 5cpa.ru ESMTP Postfix (Ubuntu)
client EHLO vonica
server 250-5cpa.ru
250-PIPELINING
250-SIZE 15728640
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
client STARTTLS
server 220 2.0.0 Ready to start TLS
socket Closing connection to the server
Run Code Online (Sandbox Code Playgroud)
谢谢!
小智 7
我有类似的问题(可能相同),我发现当我使用自签名SSL证书时会发生这种情况.我通过在tls中添加"rejectUnauthorized"选项来修复此问题:
var transporter = nodemailer.createTransport(smtpTransport({
host: host,
port: 25,
auth: {
user: user,
pass: pass
},
tls:{
rejectUnauthorized: false
}
}));
Run Code Online (Sandbox Code Playgroud)
该错误应用于"sendMail"函数的回调,而不是作为"错误"发出.
我没有足够的声誉来回复上面,但你也可以检查 Nodemailer 的最新语法,即:
const smtpConfig = {
host: 'smtp.gmail.com',
port: 465,
secure: true, // use SSL
auth: {
user: 'user@gmail.com',
pass: 'pass'
}
}
Run Code Online (Sandbox Code Playgroud)
笔记:
secure: true // use SSL
Run Code Online (Sandbox Code Playgroud)
如果您告诉它使用 SSL,您可能不需要 TLS 解决方法。
参考: https: //nodemailer.com/2-0-0-beta/setup-smtp/
我的目前正在运行 postfix 和 mailx,我只需要输入主机名:
const transporter = nodemailer.createTransport({
name: 'localhost'
})
Run Code Online (Sandbox Code Playgroud)
只要您可以执行此测试(在 shell 中输入),就应该可以工作:
echo "Email Body Test" | mail -s "Email Subject Test" you@yourdomain.com
Run Code Online (Sandbox Code Playgroud)
如果它不起作用,请检查您的防火墙、端口 25(可能不是本例中的问题,但在其他类似情况下)。
还要确认运行节点的用户有使用邮件程序的权限。
| 归档时间: |
|
| 查看次数: |
8884 次 |
| 最近记录: |