用nodejs向163邮箱, gmail邮箱, qq邮箱发邮件, nodemailer使用详解

以前写过一篇3行代码发邮件(含发送图片), 收获了50+喜欢, 最近博主在用node做后端渲染的业务, 把nodejs发邮件的核心代码也分享一下

准备工作

  • 准备一个163的邮箱, 并获取授权码 点击查看获取163邮箱授权码具体步骤
  • 在本地机器安装nodejs

"注释详尽"的源码

'use strict';
const nodemailer = require('nodemailer');
const moment = require('moment');
const path = require('path');

nodemailer.createTestAccount((err, account) => {
    // 填入自己的账号和密码
    let transporter = nodemailer.createTransport({
        host: 'smtp.163.com',
        port: 465,
        secure: true, // 如果是 true 则port填写465, 如果 false 则可以填写其它端口号
        auth: {
            user: "[email protected]", // 发件人邮箱
            pass: "" // 发件人密码(用自己的...)
        }
    });
    // 获取当前时间
    let sendTime = moment().format('MMMM Do YYYY, h:mm:ss a');
    // 填写发件人, 收件人
    let mailOptions = {
        // 发件人地址
        from: '[email protected]',
        // 收件人列表, 向163邮箱, gmail邮箱, qq邮箱各发一封
        to: '[email protected], [email protected], [email protected]',
        // 邮件主题
        subject: '用nodemailer发出的邮件~',
        // 文字内容
        text: '发送附件内容',
        // html内容
        html: '发送时间:' + sendTime + '',
        // 附件内容 是一个列表, 第一个是目录下的pack.json文件, 第二是御坂美琴的头像, 第三是作者在拍的图片的zip包
        attachments: [{
            filename: 'package.json',
            path: path.resolve(__dirname, 'package.json')
        }, {
            filename: 'bilibili.jpg',
            path: path.resolve(__dirname, 'bilibili.jpg')
        }, {
            filename: 'room.zip',
            path: path.resolve(__dirname, 'room.zip')
        }],
    };

    // 发送邮件
    transporter.sendMail(mailOptions, (error, info) => {
        if (error) {
            return console.log(error);
        }
        console.log("邮件发送成功~");
    });
});

运行结果

  • Gmail收到:
用nodejs向163邮箱, gmail邮箱, qq邮箱发邮件, nodemailer使用详解_第1张图片
  • 163邮箱收到(自己发给自己)
用nodejs向163邮箱, gmail邮箱, qq邮箱发邮件, nodemailer使用详解_第2张图片
  • qq邮箱收到
用nodejs向163邮箱, gmail邮箱, qq邮箱发邮件, nodemailer使用详解_第3张图片

相关资源:

用nodejs向163邮箱, gmail邮箱, qq邮箱发邮件, nodemailer使用详解_第4张图片

链接: https://pan.baidu.com/s/1Gk6zMO4_I2oWNvRlgzmfng 密码:i3lu

小结:

用邮件作为后端程序的预警是一个古老而有效的方法, 虽然nodemailer发邮件的代码量,远大于三行代码的yagmail,但nodemailer的通用性还是蛮强的, 推荐使用, 如果哪个小伙伴用更好用的nodejs发邮件的模块, 欢迎在下方留言, 最后祝双十一剁手愉快~

你可能感兴趣的:(用nodejs向163邮箱, gmail邮箱, qq邮箱发邮件, nodemailer使用详解)