基于Node.js实现nodemailer邮件发送


Posted in Javascript onJanuary 26, 2016

Nodemailer是一个简单易用的Node.js邮件发送组件,具体操作如下

1、安装nodemailer

npm install nodemailer --save

2、特点

Nodemailer的主要特点包括:

  • 支持Unicode编码
  • 支持Window系统环境
  • 支持HTML内容和普通文本内容
  • 支持附件(传送大附件)
  • 支持HTML内容中嵌入图片
  • 支持SSL/STARTTLS安全的邮件发送
  • 支持内置的transport方法和其他插件实现的transport方法
  • 支持自定义插件处理消息
  • 支持XOAUTH2登录验证

以上的功能特点,已经覆盖了大部分的发邮件的需求了,接下来就让我们动手开始写程序吧。

3、简单示例

这是一个完整的例子来发送电子邮件以明文和HTML本体

var nodemailer = require('nodemailer');

// create reusable transporter object using the default SMTP transport
var transporter = nodemailer.createTransport('smtps://user%40gmail.com:pass@smtp.gmail.com');

// setup e-mail data with unicode symbols
var mailOptions = {
  from: 'Fred Foo ? <foo@blurdybloop.com>', // sender address
  to: 'bar@blurdybloop.com, baz@blurdybloop.com', // list of receivers
  subject: 'Hello ✔', // Subject line
  text: 'Hello world ?', // plaintext body
  html: '<b>Hello world ?</b>' // html body
};

// send mail with defined transport object
transporter.sendMail(mailOptions, function(error, info){
  if(error){
    return console.log(error);
  }
  console.log('Message sent: ' + info.response);
});

4、常见错误

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

错误原因: 账号未设置该服务
解决方案: QQ邮箱 -> 设置 -> 帐户 -> 开启服务:POP3/SMTP服务

{ [SenderError: Mail from command failed - 501 mail from address must be same as authorization user]
 name: 'SenderError',
 data: '501 mail from address must be same as authorization user',
 stage: 'mail' }

错误原因: 发件账号与认证账号不同,即用户名和密码不匹配。

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
理解Javascript_05_原型继承原理
Oct 13 Javascript
15条JavaScript最佳实践小结
Aug 09 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
Aug 15 Javascript
跟我学习javascript的隐式强制转换
Nov 16 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
May 17 Javascript
jquery 实现回车登录详解及实例代码
Oct 23 Javascript
bootstrap实现每隔5秒自动轮播效果
Dec 20 Javascript
jQuery设计思想
Mar 07 Javascript
jQuery实现简单的手风琴效果
Apr 17 jQuery
jQuery动画_动力节点节点Java学院整理
Jul 04 jQuery
Vue父子组建的简单通信之控制开关Switch的实现
Jun 04 Javascript
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
Jun 07 Javascript
JavaScript小技巧整理篇(非常全)
Jan 26 #Javascript
基于canvas实现的绚丽圆圈效果完整实例
Jan 26 #Javascript
基于canvas实现的钟摆效果完整实例
Jan 26 #Javascript
js实现的页面矩阵图形变换特效
Jan 26 #Javascript
JS实现简单的二维矩阵乘积运算
Jan 26 #Javascript
探究Javascript模板引擎mustache.js使用方法
Jan 26 #Javascript
jQuery Validation Plugin验证插件手动验证
Jan 26 #Javascript
You might like
PHP的中问验证码
2006/11/25 PHP
如何使用PHP实现javascript的escape和unescape函数
2013/06/29 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
JS控制表格隔行变色
2006/06/26 Javascript
javaScript Array(数组)相关方法简述
2009/07/25 Javascript
页面中iframe相互传值传参
2009/12/13 Javascript
网页中CDATA标记的说明
2010/09/12 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
Javascript小技巧之生成html元素
2014/05/15 Javascript
JQuery实现可直接编辑的表格
2015/04/16 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
分享经典的JavaScript开发技巧
2015/11/21 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
Angular的事件和表单详解
2016/12/26 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现
2017/03/11 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
[46:57]EG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
在Mac OS上搭建Python的开发环境
2015/12/24 Python
Python3 模块、包调用&amp;路径详解
2017/10/25 Python
Python中类的初始化特殊方法
2017/12/01 Python
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
python 求某条线上特定x值或y值的点坐标方法
2019/07/09 Python
简单易懂Pytorch实战实例VGG深度网络
2019/08/27 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
Python 实现微信自动回复的方法
2020/09/11 Python
校园安全检查制度
2014/02/03 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
工程质量保证书
2015/05/09 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
如何在向量化NumPy数组上进行移动窗口
2021/05/18 Python
Python Pygame实战在打砖块游戏的实现
2022/03/17 Python
一行Python命令实现批量加水印
2022/04/07 Python