node.js发送电子邮件入门教程

发布时间:2020-05-21编辑:脚本学堂
node.js发送电子邮件的方法,node.js全用nodemailer模块发送邮件的例子,需要的朋友参考下。

nodejs发送电子邮件,首先,安装nodemailer:
 

npm install nodemailer

导入库:
 

var mail = require(‘nodemailer‘);

SMTP配置:
 

nodemailer.SMTP = {     
    host: ‘smtp.example.com‘,   
    port: 25,   
    use_authentication: false,      
    user: ”, 
    pass: ” 
}

参数详解:
host: ‘smtp.example.com‘, //定义用来发送邮件的邮箱服务器,一般是QQ(smtp.qq.com),gmail(smtp.gmail.com)这些的
port:25, //定义服务器端口,一般是25 ,如果是使用SSL端口一般为465如果使用TLS/STARTTLS (port 587)
ssl:false, //默认为false,表示不用SSL,如果为true,则port为465,
user: ‘my@example.com‘, //邮箱用户名,只有当use_authentication: true时才用
pass:‘**********‘ //输入邮箱密码,只有当use_authentication: true时才用

send_mail代码:
 

mail.send_mail(
{
    sender:‘me@example.com‘, //发送邮件的地址
    to:‘you@example.com‘, //发给谁
    subject:‘测试‘, //主题
    body:‘发送邮件成功‘, //发送的内容
    html:‘<p>hello</p>‘, //如果要发送html
    attachments: attachment //如果要发送附件
},
//回调函数,用户判断发送是否成功,如果失败,输出失败原因。
function(error,success){
   if(!error){
        console.log(‘message success‘);
   }else{
     console.log(‘failed‘+error);
   }
}

发送带附件邮件时,附件格式参考如下:
 

var fs = require(‘fs‘); //需要用到fs
var img = fs.readFileSync(__dirname+"/img.png"); //导入图片
 
var attachment_list = [
{
    'filename': 'attachment1.txt', //这里只是给附件取名称,而不是导入文件内容
    'contents': 'contents for attachment1.txt' //引入附件
},
{
    'filename': 'аттачмент2.bin',
    'contents': new Buffer('binary contents', 'binary');
},
{
    'filename': "img.png",
    'contents': img //导入图片文件
}
 
];

附件可是嵌入HTML的图像。
要使用此功能,需要设置附加属性的附件 -CID(文件的唯一标识符)
 

var cid_value = Date.now() + ‘.image.jpg‘;
var html = ‘Embedded image: <img src="cid:‘ + cid_value + ‘" />‘;
var attachments = [{
    filename: 'image.png',
    contents: IMAGE_CONTENTS,
    cid: cid_value
}];