利用Nodemailer发送邮件

  • 安装Nodemailer
    1
    npm install nodemailer@v0.7.1

注:版本为v0.7.1,当时试用了一次v1.0之后的版本,没有成功,报错提示让用v0.7.1版本,还没研究明白为什么新版本没有成功,可能一些方法配置还是老版本的,新版本有所更新,有待研究,希望有大神分享解释原因

  • 进行配置
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var config = {
    host: "主机名", // 主机
    secureConnection: true, // 使用 SSL
    use_authentication: true, //使用qq等邮箱需要配置
    port: 465, // SMTP 端口
    auth: {
    user: "***@***", // 账号
    pass: "password" // 密码
    }
    }
  • 引用nodemailer,创建对象
    1
    2
    3
    4
    var nodemailer = require('nodemailer');
    var transporter = nodemailer.createTransport('SMTP',config);
    // config 为配置项
    // SMTP 简单邮件传输协议

关于主机名,腾讯企业邮箱,
接收服务器:
pop.exmail.qq.com(使用SSL,端口号995)
发送服务器:
smtp.exmail.qq.com(使用SSL,端口号465)
其他邮箱可网上搜索或在邮箱的设置里找到相关信息。

  • 发送邮件
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    transporter.sendMail({
    from: '***@***', //发件箱
    to: '***@***', //接受箱
    subject: '主题',
    text: '发件内容'
    }, function (error, info) {
    if(error){
    console.log(error); //发件失败
    }else{
    console.log('Message sent: ' + info.response); //发件成功
    }
    transporter.close(); //关闭
    });
  • from: 发件人
  • to: 收件人
  • cc: 抄送;收件人可以看到邮件抄送给了谁
  • bcc: 密送;收件人不能查到邮件发送给除自己以外的人
  • subject: 主题
  • text: 发送邮件的内容
  • html: 发送html格式的内容
  • attachments: 发送附件
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    attachments: [
    {
    filename: 'text0.txt',
    content: 'hello world!' //文件的内容
    },
    {
    filename: 'text1.txt',
    path: './attach/text1.txt' //文件的路径
    }
    ]


简单的创建一个小工程
  • 首先创建文件夹email

    1
    mkdir email
  • 安装nodeemailer如上

  • 创建email.js,在文件中写入上面的代码,配好主机名,邮箱,我用的是腾讯企业邮箱,自动开启了POP3/SMTP服务
    注:如果使用qq邮箱的话,需要自己在设置中开启服务;使用gmail邮箱会被gmail拦截,需要到gmail的安全设置中修改
  • 写完email.js后,开始跑工程
    1
    node email.js

Nodemailer的github库地址:https://github.com/andris9/Nodemailer

####参考: