基于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 15 Javascript
js 代码优化点滴记录
Feb 19 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
Dec 11 Javascript
JS学习之表格的排序简单实例
May 16 Javascript
JavaScript中ES6字符串扩展方法
Aug 26 Javascript
浅析jQuery操作select控件的取值和设值
Dec 07 Javascript
微信小程序 获取javascript 里的数据
Aug 17 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
Mar 12 Javascript
对TypeScript库进行单元测试的方法
Jul 18 Javascript
Vue引入Stylus知识点总结
Jan 16 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
Jul 23 Javascript
JS函数式编程实现XDM一
Jun 16 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语言中global和$GLOBALS[]的分析 之二
2012/02/02 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
2011/07/27 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
JavaScript中浅讲ajax图文详解
2016/11/11 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
深入理解Python中变量赋值的问题
2017/01/12 Python
基于Python代码编辑器的选用(详解)
2017/09/13 Python
python 通过xml获取测试节点和属性的实例
2018/03/31 Python
Python global全局变量函数详解
2018/09/18 Python
Python开发的十个小贴士和技巧及长常犯错误
2018/09/27 Python
Python获取网段内ping通IP的方法
2019/01/31 Python
Python面向对象思想与应用入门教程【类与对象】
2019/04/12 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
2020/03/09 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
Python 存取npy格式数据实例
2020/07/01 Python
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
商务英语应届生自我鉴定
2013/12/08 职场文书
保护动物的标语
2014/06/11 职场文书
公安机关查摆剖析材料
2014/10/10 职场文书
婚宴新郎致辞
2015/07/28 职场文书
劳动合同变更协议书范本
2019/04/18 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python