资讯专栏INFORMATION COLUMN

如何利用Node发送邮件

马忠志 / 1468人阅读

摘要:使用发送邮件最近在做用户注册的功能,有这样的需求用户填完信息点击注册后,服务器要发给用户注册邮箱一个激活链接来激活账户,后端用写的,第一次做后端发送邮件的功能,折腾了半天,终于实现了,哈哈。

使用Nodemailer发送邮件

最近在做用户注册的功能,有这样的需求:用户填完信息点击注册后,服务器要发给用户注册邮箱一个激活链接来激活账户,后端用Node写的,第一次做后端发送邮件的功能,折腾了半天,终于实现了,哈哈。

关于Node生态下发送邮件的插件也有很多,我用的比较主流的Nodemailer来做的。如果要用SMTP协议的话还要引入Nodemailer的一个模块nodemailer-smtp-transport

Nodemailer官网

首先新建一个文件夹,cd到这个文件夹

安装 Nodemailernodemailer-smtp-transport

npm i nodemailer nodemailer-smtp-transport --save

在文件根目录下新建test.js文件,结合官网给的的例子,我们先搭建一个简单的例子

//test.js

const nodemailer = require("nodemailer")
const smtpTransport = require("nodemailer-smtp-transport")

// 1. 创建
const transport = nodemailer.createTransport(smtpTransport({
    host: "xxx.com",  //查看发送邮件的邮箱开放的host
    port: xx,   //查看发送邮件的邮箱开放的port
    secureConnection: true, //使用 SSL
    auth: {
        user: "xxx@xxx.com",  //发送邮件的邮箱
        pass: "xxxxxx"  //发送邮件的邮箱的密钥
    }
}));

// 2. 邮件的具体信息
const mailOptions = {
    from: ""小明" ",  //发送邮件的邮箱,与上面 user 相同
    to: "xxx@xxx.com",  //接收邮件的邮箱,如有多个,用逗号隔开
    subject: "这是一封测试邮件",  //邮件标题
    html: "

这是一封用nodejs的nodemailer发送的测试邮件。

" //邮件内容,可以为html }; // 3. 发送邮件 transport.sendMail(mailOptions, function(error, info){ if(error){ console.log(error); }else{ console.log("Message sent: " + info.response); } });

这样基本的框架都搭好了,其实重要的是在创建时,如何获取到 host port 以及 user中的namepass

下面我试验了两种邮箱,QQ邮箱 阿里的企业邮箱

QQ邮箱

查看了QQ邮箱的帮助中心 得知
hostsmtp.qq.com
port465
user 是你要发送邮件的邮箱
pass 需要开启邮箱的SMTP
功能,开启方法在QQ邮箱帮助中心有

开启的时候他会发送给你一串英文,这个就是我们需要的pass

到这个地方就可以测试一下了!

到终端执行
node test.js
可以看到打印的日志,如果显示OK,那就快去接收的邮箱里看看有没有邮件了

阿里企业邮箱

注意这里是企业邮箱,因为我在阿里云上买的域名,送的企业邮箱,所以想着试一试。

他的帮助文档里也可以查到
hostsmtpdm.aliyun.com
port25
user 是你要发送邮件的邮箱
pass 的获取需要配置一下邮箱,使用 SMTP 发送邮件

如果没有发信域名需要自行新建域名,新建完成后配置域名,链接

然后验证发信域名,验证成功后,点击发信地址 点击设置SMTP密码(注意:这里必须要设置SMTP密码,否则还是没有开启成功)

pass就是你刚刚输入的SMTP密码

快去测试一下吧~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/107114.html

相关文章

  • Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件

    摘要:本文首发于个人博客项目源码,欢迎,说不定哪天脱单了就能用到了写在前面自从用邮箱注册了很多账号后,便会收到诸如以下类似的邮件刚开始还以为是一张图片,后来仔细一看不是图片呀,好像还是呀,于是好奇宝宝我一下,查阅多篇资料后总结出怎么用前端知识和做 本文首发于个人博客:VinceBlog 项目源码:NodeMail,欢迎star,说不定哪天脱单了就能用到了 写在前面 自从用邮箱注册了很多账号后...

    zero 评论0 收藏0
  • 网络分层概述

    摘要:市面上有很多介绍网络是怎么分层的,及每层负责些什么的书,但很少看到有书介绍为什么要这么多分层。本文采用详解里的层结构,即物理层链路层网络层传输层和应用层,并且只讨论以太网和常见的组网方式,不考虑特殊场合的应用。 市面上有很多介绍网络是怎么分层的,及每层负责些什么的书,但很少看到有书介绍为什么要这么多分层。 本篇将试着从分层是怎么来的这个角度分析一下网络是如何一步一步发展到今天这样的,希...

    xiao7cn 评论0 收藏0
  • 网络分层概述

    摘要:市面上有很多介绍网络是怎么分层的,及每层负责些什么的书,但很少看到有书介绍为什么要这么多分层。本文采用详解里的层结构,即物理层链路层网络层传输层和应用层,并且只讨论以太网和常见的组网方式,不考虑特殊场合的应用。 市面上有很多介绍网络是怎么分层的,及每层负责些什么的书,但很少看到有书介绍为什么要这么多分层。 本篇将试着从分层是怎么来的这个角度分析一下网络是如何一步一步发展到今天这样的,希...

    alogy 评论0 收藏0
  • 手把手教你刷github提交记录

    摘要:但是,毕竟是人,哪天忙了就会忘记提交,所以想着能不能实现在自己阿里云服务器系统上,设置,定制下命令,实现每天定点自动提交。 前言 进入自己github主页会看到自己的提交记录,如果某天没有提交记录,那天的小方框就显示灰色。强迫症的我,每次进来看着就感觉不爽,想着自己每天记得提交点东西,争取像阮一峰大神一样,每天都有提交记录。 showImg(https://www.wty90.co...

    ChanceWong 评论0 收藏0
  • node服务的监控预警系统架构

    摘要:业务量计算和数据打点这里提到的业务量,指的是监控预警系统所关注的数据业务,如内存和利用率吞吐量和响应时间。其中,内存和利用率可以通过下的相关命令如来查询,响应时间和吞吐量则通过中间件实现粗略统计。 需求背景 目前node端的服务逐渐成熟,在不少公司内部也开始承担业务处理或者视图渲染工作。不同于个人开发的简单服务器,企业级的node服务要求更为苛刻: 高稳定性、高可靠性、鲁棒性以及直观的...

    ethernet 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<