【发布时间】:2017-02-27 10:35:08
【问题描述】:
我在向我的 Gmail 帐户发送电子邮件时遇到问题。 我收到超时错误。这让我很困惑,因为我基本上是从我之前做的一个工作项目中复制了设置。 但后来我尝试了这个工作项目,它给了我同样的错误。 据我所知,Nodemailer 的 Gmail 默认端口是 465,它使用 SSL,所以它被打开了。 我尝试了三个不同的 Gmail 帐户,两个有 2FA,其中一个设置了 XOAuth,第三个我打开了不太安全的应用程序。一切都因同样的错误而失败。
这里是sn-p的代码,我觉得问题出在:
smtpConfig =
service: "Gmail"
connectionTimeout : "7000" #waiting for 60s is annoying
greetingTimeout : "7000"
# auth:
# XOAuth2:
# user: receiverEmail
## pass: appSpecificPassword
# clientId: myClientId
# clientSecret: itIsMySecret
# refreshToken: myRefreshToken
auth:
user: receiverEmail
pass: appSpecificPassword
secure: true # use SSL
debug: true
我后来把它放到了一个函数中。在这期间我不得不把信封放在一起。
smtpTrans = nodemailer.createTransport(smtpTransport(smtpConfig), ->
#Setup configs are on top, because we need to config before we use the POST method according to express
)
当您将 console.log 放在那里时,这个甚至不会触发。
在 Nodemailers Github 上,我发现以下内容可以在终端中试用:
openssl s_client -crlf -connect smtp.gmail.com:465
这应该给出一个很好的 200 响应,但它没有,它给了我一个超时。每个其他可用端口都以相同的方式响应。 我请一个朋友在他的电脑上试用它,它对他来说很好用。所以我回来在我的计算机上搜索问题 - 也许在我的操作系统、节点版本上,我们是否以不同的方式设置配置而我没有注意到? 我的选择已经不多了,所以我在这里寻求帮助。
我的防火墙已关闭,在这种情况下无需设置额外端口。
【问题讨论】:
标签: node.js email gmail nodemailer