基于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小实验之函数引用
Nov 17 Javascript
json格式数据的添加,删除及排序方法
Jan 21 Javascript
prototype框架中美元符号$用法分析
Jan 22 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
May 07 Javascript
表单元素值获取方式js及java方式的简单实例
Oct 15 Javascript
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
Jun 02 jQuery
JS中mouseup事件丢失的原因与解决办法
Jun 14 Javascript
Angular实现下拉框模糊查询功能示例
Jan 03 Javascript
用jquery获取select标签中选中的option值及文本的示例
Jan 25 jQuery
在Vue项目中引入腾讯验证码服务的教程
Apr 03 Javascript
vue实现在一个方法执行完后执行另一个方法的示例
Aug 25 Javascript
mockjs+vue页面直接展示数据的方法
Dec 19 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 md5下16位和32位的实现代码
2008/04/09 PHP
php实现水仙花数的4个示例分享
2014/04/08 PHP
php实现读取内存顺序号
2015/03/29 PHP
thinkPHP5.0框架URL访问方法详解
2017/03/18 PHP
如何直接访问php实例对象中的private属性详解
2017/10/12 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
HTML中事件触发列表与解说
2007/07/09 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
html向js方法传递参数具体实现
2013/08/08 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
jquery验证手机号是否正确实例讲解
2015/11/17 Javascript
JavaScript重载函数实例剖析
2016/05/13 Javascript
jQuery 弹出层插件(推荐)
2016/05/24 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
2019/05/16 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
2020/04/26 Javascript
如何使用jQuery操作Cookies方法解析
2020/09/08 jQuery
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
2021/02/15 Javascript
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
Python里disconnect UDP套接字的方法
2015/04/23 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
详解Python 中的容器 collections
2020/08/17 Python
Sony C++笔试题
2013/03/10 面试题
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
外语系毕业生找工作的求职信
2013/11/28 职场文书
2014年财政局工作总结
2014/12/09 职场文书
2015年外贸业务员工作总结范文
2015/05/23 职场文书
岁月神偷观后感
2015/06/11 职场文书
MySQL系列之十四 MySQL的高可用实现
2021/07/02 MySQL