Nodemailer介绍
Nodemailer是一个Node中常用的用于发邮件的组件。Github地址为:https://github.com/andris9/Nodemailer
Node引用:
$ npm installl nodemailer
根据 http://blog.fens.me/nodejs-email-nodemailer/ 的介绍,其主要特点包括:
支持Unicode编码
支持Window系统环境
支持HTML内容和普通文本内容
支持附件(传送大附件)
支持HTML内容中嵌入图片
支持SSL/STARTTLS安全的邮件发送
支持内置的transport方法和其他插件实现的transport方法
支持自定义插件处理消息
支持XOAUTH2登录验证
实现简单的QQ发送邮件
var nodemailer = require("nodemailer");
var smtpTransport = require('nodemailer-smtp-transport');
// 开启一个 SMTP 连接池
var transport = nodemailer.createTransport(smtpTransport({
host: "smtp.qq.com", // 主机
secure: true, // 使用 SSL
port: 465, // SMTP 端口
auth: {
user: "xxxxxxxxxx@qq.com", // 账号
pass: "xxxxxxxxxxx" // 密码
}
}));
// 设置邮件内容
var mailOptions = {
from: "xxxxxxxxxx@qq.com", // 发件地址
to: "xxxxxxxxxx@qq.com", // 收件列表
subject: "喜欢NodeJs", // 标题
html: "<b>thanks a for visiting!</b>"
}
// 发送邮件
transport.sendMail(mailOptions, function(error, response) {
if (error) {
console.error(error);
} else {
console.log(response);
}
transport.close(); // 如果没用,关闭连接池
});
常见错误
{ [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' }
错误原因:
发件账号与认证账号不同
理想是人生的太阳