nodejs使用nodemailer发送邮件

nodejs使用nodemailer实现自动发送邮件

首先安装包:

npm i nodermailer --save-dev

 

代码如下:

// const path = require('path');
const nodemailer = require('nodemailer');
const os = require('os');
// 发送人信息
const MailInfo = {
    service: 'qq',
    user: '1522025433@qq.com',
    pass: 'xxxx' // 授权码
};

// 接受人信息
const ToInfo = {
    // 接受者,可以同时发送多个,以逗号隔开  (通知自己)
    user: '2122008217@qq.com,' + MailInfo.user,  // 姚德凯
}

// 本机ip
let LocatIp = '';

/**
 * 获取本机IP
 * @return {String} 返回本机IP
 */
const getLocalIP = ()=>{
    const ifaces = os.networkInterfaces();
    let locatIp = '';
    for (let dev in ifaces) {
        if (dev === '本地连接' || dev === '以太网') {
            for (let j = 0; j < ifaces[dev].length; j++) {
                if (ifaces[dev][j].family === 'IPv4') {
                    locatIp = ifaces[dev][j].address;
                    break;
                }
            }
        }
    }
    return locatIp;
}
LocatIp = getLocalIP();

console.log(LocatIp)


/*
// qq
const transporter = nodemailer.createTransport({
    service: 'qq',
    auth: {
        // user: '527828938@qq.com',
        user: 'zhudongakaiemail@163.com',
        // pass: 'ugxovfwhvxypxxxx' // 授权码,通过QQ获取
        pass: 'xxxxx' // 授权码,通过QQ获取
    }
});
*/

/*
// 163
const transporter = nodemailer.createTransport({
    // host: 'smtp.163.com',
    // port: 465,
    // secure: true, // 如果是 true 则port填写465, 如果 false 则可以填写其它端口号
    service: '163',
    auth: {
        // user: 'zhudongkaiemail@163.com',
        // pass: 'xxxxxxxxx' // 授权码,通过163获取
        user: MailInfo.user,
        pass: MailInfo.pass // 授权码,通过163获取
    }
});
*/

// outlook
const transporter = nodemailer.createTransport({
    service: MailInfo.service,
    auth: {
        // user: 'zhudongkaiemail@163.com',
        // pass: 'xxxxxxxxx' // 授权码,通过163获取
        user: MailInfo.user,
        pass: MailInfo.pass // 授权码,通过163获取
    }
});





const mailOptions = {
    // from: '527828938@qq.com', // 发送者
    // from: 'zhudongkaiemail@163.com', // 发送者
    // to: '1689372692@qq.com', // 接受者,可以同时发送多个,以逗号隔开
    from: MailInfo.user, // 发送者
    to: ToInfo.user, // 接受者,可以同时发送多个,以逗号隔开
    subject: '发包邮件发送', // 标题
    //text: 'Hello world', // 文本
    /*
    html: `<h2>nodemailer基本使用:</h2>
           <h3>
                   <a href="http://blog.csdn.net/zzwwjjdj1/article/details/51878392">
                    http://blog.csdn.net/zzwwjjdj1/article/details/51878392
                </a>
            </h3>`,
    */
    html: `<h2>辛苦发包,谢谢!</h2>
           <a href="http://${LocatIp}:5000/build/build.zip">下载正式包</a>
           <a href="http://${LocatIp}:5000/build.test/build.test.zip">下载测试包</a>`,
/*  // 附件
    attachments:[
        // {
        //     filename : 'build.test',
        //     path: path.resolve( __dirname, '../build.test/build.test.zip')
        // },
        // {
        //     filename : 'build',
        //     path: path.resolve( __dirname, '../build/build.zip')
        // }
        
        
        {
            filename : 'build',
            path: path.resolve( __dirname, '../build/build.zip')
        },
    
    ]
*/
};

transporter.sendMail(mailOptions, function (err, info) {
    if (err) {
        console.log(err);
        return;
    }
    
    console.log('邮件发送成功');
});

这样就完成了。

如果使用微软邮箱发送有问题请参考下面这篇文章有可能帮到你:

nodemaierl以hotmail(微软邮箱)作为发件人时报错554 

posted @ 2020-09-29 09:16  暗恋桃埖源  阅读(986)  评论(0编辑  收藏  举报