基于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判断对象是否相等实现代码
Mar 18 Javascript
2种jQuery 实现刮刮卡效果
Feb 01 Javascript
javascript弹出带文字信息的提示框效果
Jul 19 Javascript
浅谈EasyUI常用控件的禁用方法
Nov 09 Javascript
JS简单实现移动端日历功能示例
Dec 28 Javascript
微信小程序 WebSocket详解及应用
Jan 21 Javascript
iscroll实现下拉刷新功能
Jul 18 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
May 08 Javascript
node app 打包工具pkg的具体使用
Jan 17 Javascript
node 解析图片二维码的内容代码实例
Sep 11 Javascript
浅谈vuex的基本用法和mapaction传值问题
Nov 08 Javascript
vue中jsonp插件的使用方法示例
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脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
PHP Include文件实例讲解
2019/02/15 PHP
Laravel validate error处理,ajax,json示例
2019/10/25 PHP
js兼容标准的表格变色效果
2008/06/28 Javascript
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
jquery实现翻动fadeIn显示的方法
2015/03/05 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
javascript实现倒计时跳转页面
2016/01/17 Javascript
vue使用vue-cli快速创建工程
2017/07/28 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
浅谈JavaScript中this的指向问题
2020/07/28 Javascript
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
python执行get提交的方法
2015/04/29 Python
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
python 显示数组全部元素的方法
2018/04/19 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
python的faker库用法
2019/11/28 Python
python实例化对象的具体方法
2020/06/17 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
澳大利亚百货公司:David Jones
2018/02/08 全球购物
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
银行会计职员个人的自我评价
2013/09/29 职场文书
护士自荐信范文
2013/12/15 职场文书
《忆江南》教学反思
2014/04/07 职场文书
网络编辑求职信
2014/04/30 职场文书
遗嘱继承权公证书
2015/01/26 职场文书
幼儿园保育员随笔
2015/08/14 职场文书
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript
搭建Yolov5服务器
2022/04/30 Servers