node.js - 为什么“nodemailer”不发送任何消息?
问题描述
这是代码:
var nodemailder = require('nodemailer');
var from = nodemailder.createTransport({
service: "gmail",
auth:{
user: 'user***@gmail.com',
pass: 'pass***'
}
});
var options = {
from: 'user***@gmail.com',
to: 'user***@gmail.com',
subject: 'sometext',
text: 'messageContext',
};
from.sendMail(options, function (error, info) {
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
如果我使用 Windows - 它可以工作,当我尝试在 Ubuntu (16) 上启动时 - 我没有收到任何错误消息等,但没有收到邮件。
解决方案
如果是这种情况,我相信 SMTP 服务无法连接到端口 25 上的连接。
运行服务器将如下所示:
$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 xxxx.de ESMTP Postfix
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
如果没有服务器监听这个端口,它会是这样的:
$ telnet localhost 25
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
这意味着您的服务可能未运行或未启用。您需要首先在端口 25 上启用/运行此服务。
此外,根据 nodemail 文档,您也可以使用 sendmail 二进制文件:
'sendmail' alternative
Alternatively if you don't want to use SMTP but the sendmail
命令然后将属性 sendmail 设置为 true(如果命令不在默认路径中,则设置为 sendmail 的路径)。
nodemailer.sendmail = true;
or
nodemailer.sendmail = '/path/to/sendmail';
If sendmail is set, then SMTP options are discarded.
推荐阅读
- spring - 引起:org.eclipse.jgit.api.errors.RefNotFoundException: Ref master 无法解析
- python - 如何通过添加额外的卡车来解决旅行商问题算法?
- javascript - 如何在reactjs中创建用于直接下载文件的按钮组件?
- android - Lineage OS n5110 Build No such file or directory 错误
- python - DOS 攻击页面上出现错误的网络爬虫
- python - 在 django 视图中为实例设置默认值
- bash - Docker撰写容器退出
- json - 追溯更改 Steam 项目类型
- c# - 部署 ASP.NET 4.5 MVC 时未将对象引用设置为对象的实例
- zapier - “运行 Python”模块给出错误:'str' 对象没有属性 'copy'