Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Node实现邮箱服务功能

Node实现邮箱服务功能

作者头像
Ewall
发布于 2020-11-12 02:40:27
发布于 2020-11-12 02:40:27
1.5K00
代码可运行
举报
文章被收录于专栏:vue学习vue学习
运行总次数:0
代码可运行

可以使用 nodemailer 这个模块提供的能力完成一些诸如邮箱登录、找回密码等功能的开发。 项目地址:https://github.com/Ewall1106/mall

配置邮件客户端

  • 我们以 QQ 邮箱为例,打开qq邮箱 > 设置 > 账户中,我们将SMTP服务开启。(默认是关闭的)
  • 接下来会有一些认证方式,按照提示操作,最后会得到一个授权码

基本使用

  • 根据官网的步骤下载这个 nodemailer 包:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ npm install nodemailer
  • 根据官网的示例代码我们复制并进行简单配置:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'use strict';

const nodemailer = require('nodemailer');

async function main() {
  let transporter = nodemailer.createTransport({
    // 使用qq的smtp服务器
    host: 'smtp.qq.com',
    port: 587,
    secure: false,
    auth: {
      user: '这里填入你的邮箱',
      pass: '这里填入上一步生成得到的授权码',
    },
  });

  // 配置邮件标题、内容等
  // 这里我自己给自己发送一封 Test 测试邮件
  let info = await transporter.sendMail({
    from: '认证邮件',
    to: '123456@qq.com',
    subject: 'Test',
    text: 'Hello world',
    html: '<b>Hello world</b>',
  });

  console.log('Message sent:', info.messageId);
  console.log('Preview URL:', nodemailer.getTestMessageUrl(info));
}

main().catch(console.error);
  • 执行这个 js 文件:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ node mail.js
  • 然后我们就可以从自己的邮箱中收到这封测试邮件了:

项目实践

  • 注册界面我们需要用到邮箱服务功能 来完成用户的注册。
  • 在用户点击发送邮箱验证码的时候,将邮箱作为 key验证码作为 value 存储到 redis 缓存中。(当然你也可以用其它方式将其保存下来)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
async sendMail(ctx) {
  const { email } = ctx.request.body;

  try {
    // 随机生成一个验证码
    const code = 1234;
    // 将上面 `nodemailer` 发送邮箱的方法封装后在这里调用
    sendMail()
    // 设置缓存key-value键值对并设置过期时间
    setValue(email, code, 60 * 60 * 24);

    ctx.body = {
      code: 200,
      entry: '邮箱验证码已经发送成功',
    };
  } catch (err) {
    // handle error...
  }
}
  • 然后当我们点击注册按钮的时候对其校验。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
async registry(ctx, next) {
  const { email, password,mailcode } = ctx.request.body;

  // 从redis缓存中获取code
  const code = await getValue(email);
  // 比对验证
  if (!code) {
    ctx.body = {
      code: 400,
      message: '请点击发送验证码重新发送',
    };
    return;
  }
  if (code !== mailcode) {
    ctx.body = {
      code: 400,
      message: '请输入正确的邮箱验证码',
    };
    return;
  }
  // ...
}
  • 邮箱服务的功能就完成了。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用Node.js还可以发邮件?
GitHub地址:https://github.com/nodemailer/nodemailer
Vam的金豆之路
2021/12/01
1.3K0
使用Node.js还可以发邮件?
使用nodemailer发送邮件
参考 https://github.com/nodemailer/nodemailer/issues/759
ltfei
2023/03/06
1.1K0
NodeJS 使用 nodemailer 发送邮件
类库依赖 npm install nodemailer --save 导入 const nodemailer = require("nodemailer"); 关键点 配置 nodemailer.createTransport 的参数,指定 服务地址,端口号,验证的账户和密码 配置 mailOptions ,from , to 指定发送和目标,邮件内容等。 编写代码示例 "use strict"; const nodemailer = require("nodemailer"); const Mai
张云飞Vir
2020/03/16
1.8K0
教你用 Node.js 模拟自动发送邮件验证码
我们在开发网站时,发送验证码的功能是必定会遇到的,但发送短信验证码是需要付费的,那么邮箱验证码就是一个白嫖的好办法,今天就来教大家用node如何自动发送邮箱验证码。
五月君
2021/05/11
2.3K0
教你用 Node.js 模拟自动发送邮件验证码
node.js 模拟自动发送邮件验证码
我们在开发网站时,发送验证码的功能是必定会遇到的,但发送短信验证码是需要付费的,那么邮箱验证码就是一个白嫖的好办法,今天就来教大家用node如何自动发送邮箱验证码。
@零一
2021/01/29
2.7K0
node.js  模拟自动发送邮件验证码
通用大模型的低代码平台——3分钟内快速搭建一个简单的智能体
大家好,我是yma16,通用大模型的低代码平台——3分钟内快速搭建一个简单的智能体。
yma16
2024/06/26
4800
通用大模型的低代码平台——3分钟内快速搭建一个简单的智能体
Node 自动发送邮件
Node 发送邮件简介版本 发送者的邮箱厂商,支持列表:https://nodemailer.com/smtp/well-known/ 以QQ 为例子,打开邮箱,找到顶部的设置模块,然后找到下面的账户 找到账户下的 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 然后你就发一个短信,然后点击我已发送,就会进入这个页面 一定要记得这个东西 然后上代码 const nodemailer = require('nodemailer');
我乃小神神
2021/12/07
6620
Node 自动发送邮件
Node.js用163信箱帐号密码发邮件
首先,需要安装Node.js和nodemailer模块。可以使用npm包管理器在终端或命令提示符中运行以下命令来安装nodemailer:
用户8703799
2023/05/19
9750
云函数手撸用户体系
主要为 安装并且依赖包 配置邮箱服务 配置数据库连接 封装用户模块 调用封装的用户模块
代码哈士奇
2021/03/29
1.2K0
云函数手撸用户体系
基于nodemailer的服务端发送邮件
当我在window本地环境下没有问题,当我上传到centos服务器运行,出现以下错误:
零式的天空
2022/03/22
8600
用nodejs向163邮箱, gmail邮箱, qq邮箱发邮件, nodemailer使用详解
以前写过一篇3行代码发邮件(含发送图片), 收获了50+喜欢, 最近博主在用node做后端渲染的业务, 把nodejs发邮件的核心代码也分享一下
zhaoolee
2018/12/12
3.5K0
用nodejs向163邮箱, gmail邮箱, qq邮箱发邮件, nodemailer使用详解
Node.js 实现定时每天给女朋友发消息—nodemailer模块
本文是以一个给女友发邮件的例子讲解 nodemailer 模块,实际工作中发送异常日志等到自己的邮箱还是挺常用的,有兴趣的小伙伴学习下这个模块。
coder_koala
2020/12/17
1.8K0
Node.js 实现定时每天给女朋友发消息—nodemailer模块
基于nodemailer实现邮件发送
node中可用nodemailer实现邮件的发送。本文使用QQ邮箱实现邮件的发送。
牛老师讲GIS
2023/10/19
5110
基于nodemailer实现邮件发送
从 0 到 1 node 项目管理系统:搭建基础平台(下)
提测消息推送采用邮件(正式)与机器人(即时),提测内容、次数、质量等写入数据库,系统本身也能追踪,作为后期效能评估的辅助
Cookieboty
2020/10/23
1.1K0
从 0 到 1 node 项目管理系统:搭建基础平台(下)
nodemailer极简源码解析与实现原理
① 本文只解析基于SMTP协议发送邮件的情况 ② 本文的解析基于删减学习版—simple-nodemailer (https://github.com/AttackXiaoJinJin/simple-nodemailer) ③ 关于处理email.content的部分省略
进击的小进进
2020/07/15
2.1K0
nodemailer极简源码解析与实现原理
云函数之间互相调用实现邮件发送
很多时候,我们会面临在小程序的后台实现多重功能,比如用户管理、日志分析、数据排序等,不同的功能之间还会相互调用。如果把这些功能都写到一个云函数里,会造成云函数逻辑过于复杂,执行速度较慢等问题。此时,我们可以使用微信提供的SDK “wx-server-sdk” ,很方便的实现函数之间的调用。把功能函数拆分成一个个独立的云函数,会有很多好处:
Mason-Serverless
2018/11/20
11.8K1
云函数手撸用户体系
主要为 安装并且依赖包 配置邮箱服务 配置数据库连接 封装用户模块 调用封装的用户模块 用户模块为主要
代码哈士奇
2021/10/25
1.2K0
云函数手撸用户体系
一个研发是如何一步一步把一个小需求越搞越大的
需求:页面上加几个输入框,一个输入框填一个邮箱地址,用户提交后,给这个邮箱发个邮件。
vannding
2021/08/28
1.8K6
一个研发是如何一步一步把一个小需求越搞越大的
使用Node.js还可以发邮件
更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/119809451
马克社区
2022/06/13
6430
【SCF VS Code 实践:利用SCF和COS免费24小时监测比特币价格并邮件通知预警】
开头:小韭菜一名,劝告各位,谨慎币圈,最好远离币圈 语言环境:Node.js8.9 云服务: 云函数 SCF 对象储存 COS 第三方模块: cos-nodejs-sdk-v5 (COS的NodeSDK) request(请求API) request-promise nodemailer (发送邮件) 工具: VS Code Serverless Framework 云函数VS Code插件(Tencent Serverless Toolkit for VS Code) 必备资料: 个人QQ邮箱S
YUMCC
2019/09/27
2.1K0
【SCF VS Code 实践:利用SCF和COS免费24小时监测比特币价格并邮件通知预警】
相关推荐
使用Node.js还可以发邮件?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验