基于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 相关文章推荐
jquery 学习之二 属性(html()与html(val))
Nov 25 Javascript
jQuery源码分析-04 选择器-Sizzle-工作原理分析
Nov 14 Javascript
JavaScript encodeURI 和encodeURIComponent
Dec 04 Javascript
vue.js select下拉框绑定和取值方法
Mar 03 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
Aug 09 Javascript
Javascript 实现 Excel 导入生成图表功能
Oct 22 Javascript
如何从0开始用node写一个自己的命令行程序
Dec 29 Javascript
小程序云开发之用户注册登录
May 18 Javascript
微信小程序实现下拉框功能
Jul 16 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
Dec 09 Javascript
JS实现拼图游戏
Jan 29 Javascript
js实现上传图片到服务器
Apr 11 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获取本地图片文件并生成xml文件输出具体思路
2013/04/27 PHP
php采用curl模仿登录人人网发布动态的方法
2014/11/07 PHP
PHP-FPM的配置与优化讲解
2019/03/15 PHP
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
2010/03/07 Javascript
IE8 中使用加速器(Activities)
2010/05/14 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
2014/11/26 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
javaScript知识点总结(必看篇)
2016/06/10 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
用NodeJS实现批量查询地理位置的经纬度接口
2016/08/16 NodeJs
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
2017/04/14 jQuery
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
Textarea输入字数限制实例(兼容iOS&amp;安卓)
2017/07/06 Javascript
Angular2 组件间通过@Input @Output通讯示例
2017/08/24 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
2019/09/26 Javascript
Python中__name__的使用实例
2015/04/14 Python
浅谈Python中chr、unichr、ord字符函数之间的对比
2016/06/16 Python
Python使用email模块对邮件进行编码和解码的实例教程
2016/07/01 Python
基于python爬虫数据处理(详解)
2017/06/10 Python
Python远程方法调用实现过程解析
2020/07/28 Python
Python内置函数property()如何使用
2020/09/01 Python
HTML5里autofocus自动聚焦属性使用介绍
2016/06/22 HTML / CSS
美国婴儿用品店:Babies”R”Us
2017/10/12 全球购物
GoDaddy英国:全球排名第一的域名注册商
2018/06/08 全球购物
教师自我评价范例
2013/09/24 职场文书
安全检查与奖惩制度
2014/01/23 职场文书
生育关怀行动实施方案
2014/03/26 职场文书
公司踏青活动方案
2014/08/16 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
离职报告范文
2014/11/04 职场文书
大学推普周活动总结
2015/05/07 职场文书
董事长年会致辞
2015/07/29 职场文书