基于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 相关文章推荐
js控制框架刷新
Aug 01 Javascript
jquery dialog键盘事件代码
Aug 01 Javascript
JS动态添加与删除select中的Option对象(示例代码)
Dec 20 Javascript
javascript结合fileReader 实现上传图片
Jan 30 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
Aug 05 Javascript
JavaScript实现三级联动菜单实例代码
Jun 26 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
Apr 21 Javascript
详解vue 项目白屏解决方案
Oct 31 Javascript
JavaScript对象原型链原理解析
Jan 22 Javascript
vue 使用 canvas 实现手写电子签名
Mar 06 Javascript
JavaScript实现密码强度实时验证
Mar 18 Javascript
vue使用echarts实现水平柱形图实例
Sep 09 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实现网站插件机制的方法
2009/11/10 PHP
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
2013/06/21 Javascript
window.returnValue使用方法示例介绍
2014/07/03 Javascript
Bootstrap布局组件教程之Bootstrap下拉菜单
2016/06/12 Javascript
使用Javascript监控前端相关数据的代码
2016/10/27 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
vue源码学习之Object.defineProperty对象属性监听
2018/05/30 Javascript
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
如何给element添加一个抽屉组件的方法步骤
2019/07/14 Javascript
vue中使用极验验证码的方法(附demo)
2019/12/04 Javascript
jQuery实现简单QQ聊天框
2020/08/27 jQuery
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
Python自动连接ssh的方法
2015/03/07 Python
Python实现数据库编程方法详解
2015/06/09 Python
linecache模块加载和缓存文件内容详解
2018/01/11 Python
python如何读写csv数据
2018/03/21 Python
python3监控CentOS磁盘空间脚本
2018/06/21 Python
python之验证码生成(gvcode与captcha)
2019/01/02 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
2019/01/30 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
python 自定义装饰器实例详解
2019/07/20 Python
超简单的Python HTTP服务
2019/07/22 Python
python实现批处理文件
2020/07/28 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
店长职务说明书
2014/02/04 职场文书
小区物业门卫岗位职责
2014/04/10 职场文书
建筑投标担保书
2014/05/20 职场文书
白酒代理协议书范本
2014/10/26 职场文书
小学班主任工作总结2015
2015/04/07 职场文书
酒吧七夕情人节宣传语
2015/11/24 职场文书
学生会自荐信
2019/05/16 职场文书
导游词之千岛湖
2019/09/23 职场文书
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js