基于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 相关文章推荐
用倒置滤镜把div倒置,再把table倒置。
Jul 31 Javascript
javascript据option的value值快速设定初始的selected选项
Aug 13 Javascript
PPK 谈 JavaScript 的 this 关键字 [翻译]
Sep 29 Javascript
js获取下拉列表框中的value和text的值示例代码
Jan 11 Javascript
基于jQuery实现收缩展开功能
Mar 18 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
Jul 21 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
Sep 13 Javascript
自定义PC微信扫码登录样式写法
Dec 12 Javascript
分析javascript原型及原型链
Mar 18 Javascript
手把手带你封装一个vue component第三方库
Feb 14 Javascript
JS实现星星海特效
Dec 24 Javascript
详解React的回调渲染模式
Sep 10 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数组及条件,循环语句学习
2012/11/11 PHP
PHP中__get()和__set()的用法实例详解
2013/06/04 PHP
php将session放入memcached的设置方法
2014/02/14 PHP
PHP采集类Snoopy抓取图片实例
2014/06/19 PHP
php中实现记住密码下次自动登录的例子
2014/11/06 PHP
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
使用Firebug对js进行断点调试的图文方法
2011/04/02 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
分享20个提升网站界面体验的jQuery插件
2014/12/15 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
2015/08/13 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
[01:09:24]Ti4开幕式
2014/07/19 DOTA
[06:16]《DAC最前线》之地区预选赛全面回顾
2015/01/19 DOTA
Python编程中的反模式实例分析
2014/12/08 Python
python连接mysql实例分享
2016/10/09 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
2017/05/24 Python
Python使用sorted排序的方法小结
2017/07/28 Python
Python解析命令行读取参数--argparse模块使用方法
2018/01/23 Python
Python生成器定义与简单用法实例分析
2018/04/30 Python
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
2018/06/04 Python
python算法与数据结构之单链表的实现代码
2019/06/27 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
中专毕业自我鉴定
2013/10/16 职场文书
教育实习生的自我评价分享
2013/11/21 职场文书
2014年三八妇女节活动总结
2014/03/01 职场文书
我的梦想演讲稿500字
2014/08/21 职场文书
男方婚前保证书
2015/02/28 职场文书
军训结束新闻稿
2015/07/17 职场文书
微信小程序用户授权最佳实践指南
2021/05/08 Javascript
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android