基于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 相关文章推荐
ExtJS Window 最小化的一种方法
Nov 18 Javascript
url地址自动加#号问题说明
Aug 21 Javascript
JavaScript中的Array对象使用说明
Jan 17 Javascript
JQuery中form验证出错信息的查看方法
Oct 08 Javascript
jQuery中hide()方法用法实例
Dec 24 Javascript
JavaScript版的TwoQueues缓存模型
Dec 29 Javascript
纯javascript实现图片延时加载方法
Aug 21 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
Sep 10 Javascript
php利用curl获取远程图片实现方法
Oct 26 Javascript
vue,angular,avalon这三种MVVM框架优缺点
Apr 27 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
Mar 29 Javascript
jquery插件实现代码雨特效
Apr 24 jQuery
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实现简单洗牌算法
2013/06/18 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
2014/06/12 PHP
PHP的引用详解
2015/02/22 PHP
php截取指定2个字符之间字符串的方法
2015/04/15 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
一个基于jquery的文本框记数器
2012/09/19 Javascript
jquery移动listbox的值原理及代码
2013/05/03 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
JavaScript的事件代理和委托实例分析
2015/03/25 Javascript
AngularJs表单验证实例详解
2016/05/30 Javascript
js浏览器html5表单验证
2016/10/17 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
浅谈Javascript中的对象和继承
2019/04/19 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
Python 调用VC++的动态链接库(DLL)
2008/09/06 Python
python中urlparse模块介绍与使用示例
2017/11/19 Python
python使用sqlite3时游标使用方法
2018/03/13 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
2019/01/10 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
python 双循环遍历list 变量判断代码
2020/05/04 Python
如何理解python中数字列表
2020/05/29 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
HTML5 FileReader对象的具体使用方法
2020/05/22 HTML / CSS
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
小学信息技术教学反思
2014/02/10 职场文书
气象学专业个人求职信
2014/04/22 职场文书
525心理活动总结
2014/07/04 职场文书
小学中等生评语
2014/12/29 职场文书
实践论读书笔记
2015/06/29 职场文书
Springboot/Springcloud项目集成redis进行存取的过程解析
2021/12/04 Redis