Nodemailer Gmail 超时
Nodemailer Gmail timeout
我在向我的 Gmail 帐户发送电子邮件时遇到问题。
我收到超时错误。这让我很困惑,因为我基本上是从我以前做过的一个工作项目中复制设置的。
但是后来我尝试了工作项目,它给了我同样的错误。
据我所知,Nodemailer 的 Gmail 默认端口是 465,它使用 SSL,所以它是打开的。
我尝试了三个不同的 Gmail 帐户,两个有 2FA,其中一个设置了 XOAuth,第三个我打开了不太安全的应用程序。一切都因同样的错误而失败。
这是代码片段,我认为问题在于:
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 响应,但它没有,它让我超时。每个其他可用端口都以相同的方式响应。
我让一位朋友在他的电脑上试用了一下,他觉得效果很好。所以我回来在我的电脑上寻找问题——也许是在我的操作系统、节点版本上,我们是否以不同的方式设置了配置,但我没有注意到?
我 运行 没有选择,所以我在这里寻求帮助。
我的防火墙是关闭的,在这种情况下没有关于设置额外端口的模糊。
在对我的系统和互联网供应商进行广泛检查后,我发现我的路由器不喜欢我的内部 IP 地址。所以我续签了我的 DHCL 租约。
如果您遇到同样的问题,这里有一些调试技巧。
查杀病毒:我在网上深入研究,发现了病毒会阻塞端口的窍门。因此,如果您没有扫描仪,请下载一个。
检查您的防火墙: 最常见的问题。我检查了我的防火墙,发现它处于离线状态。
使用网络实用程序: 进行端口扫描并尝试 ping IP 地址
使用您的本地电子邮件客户端检查您的电子邮件地址,尝试发送电子邮件。检查传入服务器和传出服务器配置。
检查您的网络:询问您的提供商是否阻止了电子邮件提供商。更新您的网络配置。
检查您的 Google 帐户 是否阻止了您的 IP 地址。经常发生,如果您发送了一堆标记为垃圾邮件的电子邮件,或者如果您的帐户被黑客入侵并被某人用来发送垃圾邮件。
我在向我的 Gmail 帐户发送电子邮件时遇到问题。 我收到超时错误。这让我很困惑,因为我基本上是从我以前做过的一个工作项目中复制设置的。 但是后来我尝试了工作项目,它给了我同样的错误。 据我所知,Nodemailer 的 Gmail 默认端口是 465,它使用 SSL,所以它是打开的。 我尝试了三个不同的 Gmail 帐户,两个有 2FA,其中一个设置了 XOAuth,第三个我打开了不太安全的应用程序。一切都因同样的错误而失败。
这是代码片段,我认为问题在于:
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 响应,但它没有,它让我超时。每个其他可用端口都以相同的方式响应。 我让一位朋友在他的电脑上试用了一下,他觉得效果很好。所以我回来在我的电脑上寻找问题——也许是在我的操作系统、节点版本上,我们是否以不同的方式设置了配置,但我没有注意到? 我 运行 没有选择,所以我在这里寻求帮助。
我的防火墙是关闭的,在这种情况下没有关于设置额外端口的模糊。
在对我的系统和互联网供应商进行广泛检查后,我发现我的路由器不喜欢我的内部 IP 地址。所以我续签了我的 DHCL 租约。
如果您遇到同样的问题,这里有一些调试技巧。
查杀病毒:我在网上深入研究,发现了病毒会阻塞端口的窍门。因此,如果您没有扫描仪,请下载一个。
检查您的防火墙: 最常见的问题。我检查了我的防火墙,发现它处于离线状态。
使用网络实用程序: 进行端口扫描并尝试 ping IP 地址
使用您的本地电子邮件客户端检查您的电子邮件地址,尝试发送电子邮件。检查传入服务器和传出服务器配置。
检查您的网络:询问您的提供商是否阻止了电子邮件提供商。更新您的网络配置。
检查您的 Google 帐户 是否阻止了您的 IP 地址。经常发生,如果您发送了一堆标记为垃圾邮件的电子邮件,或者如果您的帐户被黑客入侵并被某人用来发送垃圾邮件。