nodemailer 使用过程中发现的一些问题
nodemailer 使用过程中发现的一些问题
在实现 Node.js 开发指南中提到的microblog后,想加入邮件功能模块,通过各方的了解,最终选择了nodemailer。根据nodemailer 官网的使用方法介绍,可以很轻松的实现邮件发送功能,可是当你根据自己的想法去使用 nodemailer 时会遇到一些问题,以下详细的介绍 nodemailer 的使用以及遇到的问题的一些思考。
安装 nodemailer
1 | npm install nodemailer |
引入 nodemailer 模块
1 | var nodemailer = require("nodemailer"); |
nodemailer 实例
1 | var nodemailer = require("nodemailer"); |
运行以上实例会产生以下几种情况:
1.当 user 和 pass 正确时,采用 Gmail SMTP 方式邮件发送成功。(Gmail 只验证用户是否通过认证,不做其他格式要求)
2.当 user 和 pass 正确时,采用 QQ SMTP 方式邮件发送失败。(QQ 邮件服务器验证用户是否通过认证、用户与收件人是否一致,同时格式须正确。)
1 | { [SenderError: Mail from command failed - 501 mail from address must be same as |
3.当 user 和 pass 正确时,采用 126、163 SMTP 方式邮件发送失败。(网易邮件服务器验证用户是否通过认证、用户与收件人是否一致,同时验证邮件格式是否正确)
1 | { [SenderError: Mail from command failed - 550 Invalid User c6b4f4d2-2f21-4de3-8 |
当用户的邮件格式不正确,或者收件人错误时,返回提示信息都没有 QQ 邮件服务精确
为了明确的知道邮件发送过程,我通过 windows DOS 命令 telnet smtp 连接邮件服务器,测试邮件发送情况,同时找到了得出以上结论。
nodemailer 的几点说明
- 官网的实例大部分都是采用定义 service: “Gmail” 的 SMTP 发送邮件。(基中 service 是指定义好的接口,包含提供 SMTP 服务的邮件服务商列表。文件路径为:node_modules/nodermailer/lib/wellknown.js)
2.nodemailer->service 默认国内的邮件服务商只提供 QQ 的配置,如果需要使用其他邮件服务商的 SMTP 可以打开 wellknown.js 文件进行修改。
1 | 文件路径:node_modules/nodermailer/lib/wellknown.js |
参考资料
- nodemailer 官网 http://www.nodemailer.com/
- win7 下开启 telnet http://zhidao.baidu.com/question/316035780.html
- telnet smtp 发送邮件 http://www.cnblogs.com/rootq/articles/1320266.html