OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

使用NodeJS搭建邮件自动发送服务器


分享到
分类 JS开源   关键字 开源   发布 kris  1403839329537
注意 转载须保留原文链接,译文链接,作者译者等信息。  
注* 你无法通过此功能自动群发垃圾邮件,一般大型邮件服务商对发送次数和间隔有限制,数量过大被会屏蔽,请紧慎使用。

简介


Nodemailer 是一款简单易用的基于于SMTP协议(或 Amazon SES)的,用nodejs写的邮件发送组件,目前支持绝大多数主流邮箱,如QQ邮箱,Gmail等;与网站集成起来非常容易,几行代码即可实现邮箱验证,密码修改等需要使用自动邮件发送的功能。


安装


通过npm安装一行命令即可,确保之前已经安装过node.js  

npm install nodemailer --save


测试


创建一个js文件,如 mail.js,写入如下内容,将user/pass改成你自己的用户名密码

var nodemailer  = require("nodemailer");
var user = '00000000@qq.com'
  , pass = 'XXXXXXXXX'
  ;
var smtpTransport = nodemailer.createTransport("SMTP", {
      service: "QQ"
    , auth: {
        user: user,
        pass: pass
    }
  });
smtpTransport.sendMail({
    from    : 'Kris<' + user + '>'
  , to      : '<kris@domain.com>'
  , subject : 'Node.JS通过SMTP协议从QQ邮箱发送邮件'
  , html    : '这是一封测试邮件 <br> '
}, function(err, res) {
    console.log(err, res);
});


运行


命令行输入:

node mail


结果


下列信息代表你的QQ邮箱没有开启SMTP邮件发送,在QQ邮箱找到相应配置,开启即可。

$ node mail
{ [AuthError: Invalid login - 454 Authentication failed, please open smtp flag first!]
  name: 'AuthError',
  data: '454 Authentication failed, please open smtp flag first!',
  stage: 'auth' } undefined

发送成功的标志

$ node mail
null { message: '250 Ok: queued as',
  messageId: '918d1724d950d2dc3aef42b7e7f64d@pvgd50816637a' }


更新



如果碰到错误:

[Error: Unsupported configuration, downgrade Nodemailer to v0.7.1 to use it]

说明你和的NodeMail比较新,NodeMailer 1.10.x 以上版本将不再需要设置 SMTP 类型参数

var smtpTransport = nodemailer.createTransport({
      service: "QQ"
    , auth: {
        user: user,
        pass: pass
    }
  });

利用telnet进行SMTP的验证

telnet: > telnet mx1.example.com smtp
telnet: Trying 192.0.2.2...
telnet: Connected to mx1.example.com.
telnet: Escape character is '^]'.
server: 220 mx1.example.com ESMTP server ready Tue, 20 Jan 2004 22:33:36 +0200
client: HELO client.example.com
server: 250 mx1.example.com
client: MAIL from: <sender@example.com>
server: 250 Sender <sender@example.com> Ok
client: RCPT to: <recipient@example.com>
server: 250 Recipient <recipient@example.com> Ok
client: DATA
server: 354 Ok Send data ending with <CRLF>.<CRLF>
client: From: sender@example.com
client: To: recipient@example.com
client: Subject: Test message
client: 
client: This is a test message.
client: .
server: 250 Message received: 20040120203404.CCCC18555.mx1.example.com@client.example.com
client: QUIT
server: 221 mx1.example.com ESMTP server closing connection

社区评论 ( Beta版 )
  • #0 taevas 1432734764170

    请问为什么是kris ?

  • #1 ourjs 1432881918857

    @taevas #0

    是用户 kris 发布的文章。

  • #2 小菜 1438134160151

    我想知道你说的 注* 你无法通过此功能自动群发垃圾邮件,一般大型邮件服务商对发送次数和间隔有限制,数量过大被会屏蔽。 这句话是指对方的服务器还是这个模块用的是第三方服务器发送?

  • #3 ourjs 1438138792243

    @小菜 #2

    模块本身没有限制,一般是邮件服务提供商的限制。

  • #4 樊支册 1451496278005

  • #5 疑似风月 1460381704911

    这些命令字符是在哪里写?cmd命令字符还是linux服务器或者JavaScript上?新手现在看的一团乱,拜托了,希望您能详细解答下,万分感谢!

  • #6 施它卡 1461145159242

    赛博国际亚洲官网:http://www.saibet666.com打造全亚洲最顶级的娱乐平台!顶级信誉,玩家首先!手机APP客户端

  • #7 饶汁十 1482163099244
    1. 列表

      标题 ##强调文本

    加粗文本

    int main()
    


    ##

OnceDoc 您自己的企业内容管理系统——文档、流程、知识库、报表、网盘All In One

访问404页面,寻找丢失儿童
 热门文章 - 分享最多
  1. 皇帝的新衣:Node.js
  2. 如何兼职创业并避免风险
  3. PHP vs Node.js:真正的评测数据
  4. 沃尔玛为什么要采用Node.js
  5. DevOps:全能开发是如何扼杀程序员的
  6. 再见了,Heroku
  7. Swift的前世今身-创始人的自述
  8. 在JavaScript中创建命名空间的几种写法
  9. Intel: Javascript将全面支持SIMD
  10. 在JavaScript中判断整型的N种方法
  11. AirJD-简单好用的免费建站工具

 相关阅读 - JS开源
  1. 翻译:Kendo UI 和 jQuery Mobile的区别
  2. Bearcat pomelo game 实战 -- treasures
  3. Ws.js:基于 Node.js的WS-*实现
  4. 开源项目:CSS 3D转换和动画学习示例教程
  5. 我为什么选择 D3.js
  6. Mozilla实验室发布的一款实时协作工具库TogetherJS
  7. 厌倦 Bootstrap 了没?来试试新玩具
  8. 不用HTML/CSS,JS就够了
  9. Tessel 开源硬件正式发布

 关键字 - 开源
  1. Mongoose学习参考文档——基础篇
  2. 使用NodeJS搭建邮件自动发送服务器
  3. wemall app商城源码android开发MD5加密工具类
  4. 【数据可视化】基础知识贴:10大关键术语
  5. wemall app商城源码中基于PHP的ThinkPHP惯例配置文件代码
  6. Node.JS超越jQuery成为Github上第二受欢迎的开源项目
  7. wemall软件交易平台微信图文编辑器部分代码分享
  8. wemall开源商城免费商城系统部分代码(内含代码地址)
  9. Docker究竟是什么,为什么这么流行,它的优点和缺陷有哪些?
  10. GitHub2016报告AngularJS流行度下降,JavaScript活跃度为Java两倍

 欢迎订阅 - 技术周刊

我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;


 关注我们

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号