记一次 node 发送邮件超时查错

之前做了一个内部系统需要实现邮件发送功能。记录一下错误问题。

描述

node 项目使用 nodeMailer 来发送 ke.com 的邮件。

在本地运行项目发送邮件没有问题,而在线上环境发送邮件报错。这个问题困扰了很久。

邮件配置

export default {
  host: 'mail.ke.com',
  port: 587,
  auth: {
    user: "xxxxxxx",
    pass: "**********"
  }
}

错误日志

{
  "request_time": "2019-01-15 20:29:59",
  "index_day": "2019-01-15",
  "channel": "application",
  "message": {
    Error: Connection timeout
    at SMTPConnection._formatError(/data0/www / htdocs / whale.ke.com / node_modules / nodemailer / lib / smtp - connection / index.js: 606: 19)
    at SMTPConnection._onError(/data0/www / htdocs / whale.ke.com / node_modules / nodemailer / lib / smtp - connection / index.js: 579: 20)
    at Timeout._connectionTimeout.setTimeout(/data0/www / htdocs / whale.ke.com / node_modules / nodemailer / lib / smtp - connection / index.js: 261: 18)
    at ontimeout(timers.js: 469: 11)
    at tryOnTimeout(timers.js: 304: 5)
    at Timer.listOnTimeout(timers.js: 264: 5),
    code: 'ETIMEDOUT',
    command: 'CONN'
  },
  "context": "/data0/www/htdocs/whale.ke.com/dist/actions/api/addWeekly.js:139:23"
}

结果是报了超时错误。

解决过程

对于这个错误我一直不解,不知道服务器上出了什么问题。下面是我自己的一些猜测。

  • 是否是由于本地环境是 HTTP 协议而生产环境上是 HTTPS 协议。
  • 是否是生产服务器上有防火墙屏蔽了发邮件的行为?
  • 是否是我发送邮件配置不对?
  • 是不是同事提供的邮箱地址和端口不对呢?

最后通过同事帮助才发现是由于 mail.ke.com 没有办法 ping 通,换成 lianjia.ke.com 就可以了。

注:之后我也发现在 nodeMailer 中还有一个调试选项,可以在服务器端打印出发邮件具体步骤。

教训

给我的经验教训是:

  • 遇到服务器方面的问题必须要对这方面知识有所了解,不能靠猜黑盒。
  • 对于软件开发者而言,网络知识非常重要。
  • 遇到问题在Google不出来,实在无法解决的时候,不要死磕,要多向他人请教。
  • 让我了解了堡垒机的操作流程、node 输出日志工具 log4js、负载均衡下多窗口监控 log 等知识和经验。

最后

好吧,我承认这篇文章很水,但还是要坚持日更,保持习惯!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,904评论 0 5
  • SpringBoot集成邮件服务竟如此简单,还等什么,快来学习涨姿势吧!! 学习目标 快速掌握邮件业务类的核心逻辑...
    一只袜子阅读 27,813评论 13 103
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,286评论 0 3
  • Python语言特性 1 Python的函数参数传递 看两个如下例子,分析运行结果: 代码一: a = 1 def...
    伊森H阅读 3,083评论 0 15
  • 一秋,但见离人泪。 望雁南归。 挥褪倦柳残荷, 独赏桂花香满怀。 情绯,不见故人归。 叶落知秋。 敲醒飞花浓露, ...
    夏汐蕊阅读 590评论 10 11