基于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 相关文章推荐
JSON 学习之JSON in JavaScript详细使用说明
Feb 23 Javascript
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
Jul 10 Javascript
js常用代码段收集
Oct 28 Javascript
使用jQuery.fn自定义jQuery翻页插件
Jan 20 Javascript
JS数字抽奖游戏实现方法
May 04 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
Aug 19 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
Mar 28 Javascript
javascript input输入框模糊提示功能的实现
Sep 25 Javascript
微信小程序之蓝牙的链接
Sep 26 Javascript
JavaScript动态加载重复绑定问题
Apr 01 Javascript
详解小程序开发经验:多页面数据同步
May 18 Javascript
原生js实现贪吃蛇游戏
Oct 26 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新闻发布系统教程
2014/05/09 PHP
PHP判断表单复选框选中状态完整例子
2014/06/24 PHP
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
php给图片加文字水印
2015/07/31 PHP
jQuery 使用手册(三)
2009/09/23 Javascript
JavaScript prototype属性使用说明
2010/05/13 Javascript
jQueryUI的Dialog的简单封装
2010/06/07 Javascript
return false;和e.preventDefault();的区别
2010/07/11 Javascript
A标签中通过href和onclick传递的this对象实现思路
2013/04/19 Javascript
jQuery中$.each使用详解
2015/01/29 Javascript
jQueryUI中的datepicker使用方法详解
2016/05/25 Javascript
AngularJS入门教程之链接与图片模板详解
2016/08/19 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
2016/08/28 Javascript
从零学习node.js之mysql数据库的操作(五)
2017/02/24 Javascript
react系列从零开始_简单谈谈react
2017/07/06 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
使用Nuxt.js改造已有项目的方法
2018/08/07 Javascript
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
微信小程序获取当前位置和城市名
2019/11/13 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
python中的hashlib和base64加密模块使用实例
2014/09/02 Python
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
详解如何利用Cython为Python代码加速
2018/01/27 Python
python 实现将list转成字符串,中间用空格隔开
2019/12/25 Python
基于pytorch中的Sequential用法说明
2020/06/24 Python
Python csv文件记录流程代码解析
2020/07/16 Python
出生医学证明样本
2014/01/17 职场文书
知名企业招聘广告词大全
2014/03/18 职场文书
环保倡议书范文
2014/05/12 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
南京南京观后感
2015/06/02 职场文书