zoukankan      html  css  js  c++  java
  • 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 

  • 相关阅读:
    ThinkPHP Model+数据库的切换使用
    关于SSD安装系统的一些设置(PE安装win 7)
    PHP实现文件下载:header
    Thinkphp 使用PHPExcel导入,栗子
    Ueditor 的使用(这里以php+ci为例)
    js获取鼠标选中的文字内容
    WNMP 下 Nginx 配置 (使用了phpfind一键安装环境)
    javascript 实现 trim
    javascript 获取 CSS 样式表属性
    javascript 删除节点问题
  • 原文地址:https://www.cnblogs.com/taohuaya/p/13748033.html
Copyright © 2011-2022 走看看