咏怀诗
学习+实践+记录=成长

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

错误原因:

发件账号与认证账号不同
posted on 2016-05-03 14:42  My-Derek  阅读(1656)  评论(0编辑  收藏  举报