使用Node.js还可以发邮件?

前端历劫之路

共 1425字,需浏览 3分钟

 ·

2021-03-04 11:47

前言

今天,我们给大家开发一个小效果。篇幅比较短,主要给大家展示效果。

实战

  1. 首先我们初始化一个Node项目

    npm init -y
  2. 创建一个app.js文件

    'use strict';

    const nodemailer = require('nodemailer');

    let transporter = nodemailer.createTransport({
      // host: 'smtp.ethereal.email',
      service'qq'// 使用了内置传输发送邮件 查看支持列表:https://nodemailer.com/smtp/well-known/
      port465// SMTP 端口
      secureConnectiontrue// 使用了 SSL
      auth: {
        user'xxx@qq.com'// 这里以QQ邮箱为例
        pass'kzudmlwerknibejc'// 设置的smtp授权码
      }
    });

    let mailOptions = {
      from'"xxx" <xxx@qq.com>'// sender
      to'xxx@163.com'// receivers
      subject'Hello'// Subject line
      // 发送text或者html格式
      // text: 'Hello world?', // plain text body
      html'<b>Hello world?</b>' // html body
    };

    // send mail with defined transport object
    transporter.sendMail(mailOptions, (error, info) => {
      if (error) {
        return console.log(error);
      }
      console.log('Message sent: %s', info.messageId);
      // Message sent: <04ec7731-cc68-1ef6-303c-61b0f796b78f@qq.com>
    });

    Nodemailer是一个简单易用的Node.js邮件发送组件。

    官网地址:https://nodemailer.com

    GitHub地址:https://github.com/nodemailer/nodemailer

    Nodemailer的主要特点包括:

  • 支持Unicode编码

  • 支持Window系统环境

  • 支持HTML内容和普通文本内容

  • 支持附件(传送大附件)

  • 支持HTML内容中嵌入图片

  • 支持SSL/STARTTLS安全的邮件发送

  • 支持内置的transport方法和其他插件实现的transport方法

  • 支持自定义插件处理消息

  • 支持XOAUTH2登录验证

获取smtp授权码

登录QQ邮箱,点击邮箱设置。

ce7516933bfb9cc2c92bb35d44184e05.webp

找到如下图红框所示,开启IMAP/SMTP服务后,就可以随机获取授权码了。

d67898421e50747691b7493d50c50bd4.webp


  1. 启动项目

    node app.js



3a83b1ac9e722dc97c42c5e57b5f2e5b.webp



优化

可以使用node-schedule来创建定时任务,单位时间段可以执行代码发送邮件。

npm install node-schedule


结语

谢谢阅读,希望没有浪费你的时间。


浏览 38
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报