nodemailer中的几个坑

nodemailer是什么

nodemailer是一个nodejs的邮件服务模块

如何用nodemailer发邮件

1.先安装nodemailer

npm i --save nodemailer 

2.使用nodemailer

var nodemailer = require('nodemailer');
var mailTransport = nodemailer.createTransport({
    host: 'smtp.163.com',
    port: 25,
    auth: {
        user: 'user_name@163.com',
        pass: 'xxxxxx'
    }
});

mailTransport.sendMail({
    from: 'user_name@163.com', //你的邮箱
    to: 'xxxxx', //发给谁
    subject: '标题',
    text: '内容'
}, function (err) {
    if (err) {
        console.error('Unable to send email: ' + err);
    }
});

### 坑在哪里

1.如果是163邮箱的话,auth中的pass密码是163的授权码,而不是登录密码(其他邮箱没试过,应该也是这样的),不然会报错。

2.auth中的user和下面发邮件时的from需要一致,不然也会报错。

3.纠结我大半天的东西,我是看的《node与express4开发》这本书,书中在讲到nodemailer发送邮件时是这样写的:

var mailTransport = nodemailer.createTransport('SMTP', {
    service: 'Gmail',
    auth: {
        user: credentials.gmail.user,
        pass: credentials.gmail.password
    }
});

而官方的例子是(后来看了一下官方示例):

let transporter = nodemailer.createTransport({
    service: 'gmail',
    auth: {
        user: 'gmail.user@gmail.com',
        pass: 'yourpass'
    }
});

看到区别了吧,那个'SMTP',可能是由于模块更新导致的,但是真的是坑到爆了。 另外,《node与express4》这本书还不错,就是有些地方代码有问题(写错),其他还是不错的。

posted @ 2017-02-23 23:53  lavyun  阅读(3024)  评论(0编辑  收藏  举报