基于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中关于indexOf的使用方法与问题小结
Aug 05 Javascript
jQuery中add实现同时选择两个id对象
Oct 22 Javascript
js实现图片轮换效果代码
Apr 16 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
Jun 27 Javascript
JavaScript采用递归算法计算阶乘实例
Aug 04 Javascript
学习javascript文件加载优化
Feb 19 Javascript
easyui validatebox验证
Apr 29 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
May 17 Javascript
js判断浏览器是否支持严格模式的方法
Oct 04 Javascript
基本DOM节点操作
Jan 17 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
Nov 08 Javascript
实战node静态文件服务器的示例代码
Mar 08 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
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
javascript中&quot;/&quot;运算符常见错误
2010/10/13 Javascript
仅Firefox中链接A无法实现模拟点击以触发其默认行为
2011/07/31 Javascript
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
JavaScript调试技巧之console.log()详解
2014/03/19 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
EasyUI中实现form表单提交的示例分享
2015/03/01 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
AngularJS表单基本操作
2017/01/09 Javascript
package.json文件配置详解
2017/06/15 Javascript
Echarts基本用法_动力节点Java学院整理
2017/08/11 Javascript
vue项目设置scrollTop不起作用(总结)
2018/12/21 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
JavaScript动态生成表格的示例
2020/11/02 Javascript
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
使用python绘制cdf的多种实现方法
2020/02/25 Python
html5组织文档结构_动力节点Java学院整理
2017/07/11 HTML / CSS
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
优秀通讯员事迹材料
2014/01/28 职场文书
上班看电影检讨书
2014/02/12 职场文书
关于元旦的广播稿
2014/02/16 职场文书
消防安全员岗位职责
2014/03/10 职场文书
竞选班长演讲稿500字
2014/08/22 职场文书
社区端午节活动总结
2015/02/11 职场文书
博士导师推荐信
2015/03/25 职场文书
工程部岗位职责范本
2015/04/11 职场文书
学校禁毒宣传活动总结
2015/05/08 职场文书
公司酒会致辞
2015/07/30 职场文书
小学生法制教育心得体会
2016/01/14 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python