基于Node.js实现nodemailer邮件发送

作者:lijiao 时间:2024-05-03 15:36:40 

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' }

错误原因: 发件账号与认证账号不同,即用户名和密码不匹配。

标签:Node.js,nodemailer,邮件
0
投稿

猜你喜欢

  • Win7的IIS7中ASP获得的系统日期格式为斜杠的解决办法

    2012-12-04 19:57:33
  • sql2000各个版本区别总结第1/3页

    2024-01-15 10:09:42
  • 通过js脚本复制网页上的一个表格的不错实现方法

    2024-04-23 09:16:19
  • Python 编码处理-str与Unicode的区别

    2021-04-15 15:38:43
  • Python实现计算字符串中出现次数最多的字符示例

    2021-03-11 15:59:13
  • pandas DataFrame 警告(SettingWithCopyWarning)的解决

    2023-08-20 07:45:31
  • sqlserver中如何查询出连续日期记录的代码

    2011-09-30 11:16:56
  • Python minidom模块用法示例【DOM写入和解析XML】

    2021-04-22 23:28:19
  • python读取几个G的csv文件方法

    2023-06-04 08:01:27
  • Python imageio读取视频并进行编解码详解

    2021-02-20 07:32:53
  • python 随机打乱 图片和对应的标签方法

    2023-03-13 10:45:29
  • 百度工程师讲PHP函数的实现原理及性能分析(三)

    2023-10-20 01:33:03
  • Windows下通过DOS命令登录MYSQL的方法

    2024-01-27 13:21:02
  • Python字符串、整数、和浮点型数相互转换实例

    2023-09-20 18:05:52
  • Python实现的质因式分解算法示例

    2021-12-16 23:10:05
  • Python趣味挑战之给幼儿园弟弟生成1000道算术题

    2021-08-13 07:18:56
  • tensorflow使用range_input_producer多线程读取数据实例

    2022-10-19 16:43:21
  • Python使用urllib模块的urlopen超时问题解决方法

    2023-12-16 02:49:50
  • Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例

    2023-04-19 19:40:57
  • python线程池的实现实例

    2022-11-21 11:24:27
  • asp之家 网络编程 m.aspxhome.com