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

前言

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

实战

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

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

    1'use strict'; 2 3const nodemailer = require('nodemailer'); 4 5let transporter = nodemailer.createTransport({ 6  // host: 'smtp.ethereal.email', 7  service: 'qq', // 使用了内置传输发送邮件 查看支持列表:https://nodemailer.com/smtp/well-known/ 8  port: 465, // SMTP 端口 9  secureConnection: true, // 使用了 SSL 10  auth: { 11    user: 'xxx@qq.com', // 这里以QQ邮箱为例 12    pass: 'kzudmlwerknibejc', // 设置的smtp授权码 13  } 14}); 15 16let mailOptions = { 17  from: '"xxx" <xxx@qq.com>', // sender 18  to: 'xxx@163.com', // receivers 19  subject: 'Hello', // Subject line 20  // 发送text或者html格式 21  // text: 'Hello world?', // plain text body 22  html: '<b>Hello world?</b>' // html body 23}; 24 25// send mail with defined transport object 26transporter.sendMail(mailOptions, (error, info) => { 27  if (error) { 28    return console.log(error); 29  } 30  console.log('Message sent: %s', info.messageId); 31  // Message sent: <04ec7731-cc68-1ef6-303c-61b0f796b78f@qq.com> 32}); 33

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

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

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

    Nodemailer的主要特点包括:

  • 支持Unicode编码

  • 支持Window系统环境

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

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

  • 支持HTML内容中嵌入图片

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

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

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

  • 支持XOAUTH2登录验证

  1. 获取smtp授权码

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

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

  1. 启动项目

    1node app.js 2

优化

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

1npm install node-schedule 2

结语

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

本文转转自微信公众号** 前端历劫之路**原创https://mp.weixin.qq.com/s/6OZAaxSH2L6u0DpCoFSWlw,如有侵权,请联系删除。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )