• 欢迎大家分享资料!前往留言板评论即可!

node配置邮件服务

合宙 模组资料网 3年前 (2021-05-15) 860次浏览 0个评论 扫描二维码
文章目录[隐藏]

一、背景

由于本人最近打算使用Typescript来重构一下自己的个人博客,所以就开始折腾了,但是由于之前博客的登录注册是没有配置验证码验证机制的,当然没有配置的主要原因是自己当时太菜了。由于经过了社会的考验,对于自己的技术也有所增长,所以开始折腾一下验证码机制,而验证码机制这个我们下次讨论。这次就先说说邮件服务。

二、技术选择

由于本人对于node有所涉及,所以这里选择node来进行邮件服务的配置。对于一个合格的前端来说,对于此类的问题肯定是回到npm上寻找有没有相关的包。我这里所选择的是nodemailer这个包

三、nodemailer说明

nodemailer 是一个简单易用的 Node.JS 邮件发送模块(通过 SMTP,sendmail,或者 Amazon SES),支持 unicode,你可以使用任何你喜欢的字符集。

功能

  • 零依赖性的单个模块–由于没有死角,因此代码易于审核
  • 高度重视安全性,没有人喜欢RCE漏洞
  • Unicode支持使用任何字符,包括表情符号
  • Windows支持 –您可以使用npm在Windows上,就像其他模块一样,没有编译的依赖项。从Azure或Windows盒子免费使用它
  • 使用HTML内容以及纯文本替代
  • 附件 到消息
  • 嵌入式的 HTML内容的图像附件–您的设计不会被阻塞
  • 使用TLS / STARTTLS的安全电子邮件传递
  • 不同 运输方式 除了内置 SMTP支持
  • 与签署消息 DKIM
  • 自订 插件支持 用于处理消息
  • OAuth2 认证方式
  • 代理人 用于SMTP连接
  • ES6码 -没有更多的无意内存泄漏,由于吊装VAR
  • 来自的自动生成的电子邮件测试帐户电子邮件

四、开始使用

4.1下载

npm install nodemailer

4.2 基本配置

// 创建邮件服务
  let transporter = nodemailer.createTransport({
    host: "127.0.0.1", // 发送邮件的主机ip
    port: 465, //  端口号
    secure: false, // true for 465, false for other ports
    auth: { //发送者相关配置
      user: '', // 作者邮箱
      pass: "", // 邮箱密码
    },
  });

  // 邮件内容
  let info = await transporter.sendMail({
    from: '"认证邮件" <作者邮箱>', // 邮件弹框提示
    to: config.email, // 目标邮箱
    subject: `您好{config.user}, 欢迎注册风雅个人博客`, // 邮件标题
    text: `您的注册码是{config.code}, 有效期为15分钟,请注意及时使用`, // 标题说明
    html: `
    <div style="border: 1px solid #dcdcdc;color: #676767;width: 600px; margin: 0 auto; padding-bottom: 50px;position: relative;">
        <div style="height: 60px; background: #393d49; line-height: 60px; color: #58a36f; font-size: 18px;padding-left: 10px;">风雅个人博客——欢迎来到官方社区</div>
        <div style="padding: 25px">
          <div>您好{config.user}, 欢迎注册风雅个人博客,您的注册码是<span style="color:#1890ff">{config.code}</span>, 有效期为15分钟,请注意及时使用</div>
          <div style="padding: 5px; background: #f2f2f2;">如果该邮件不是由你本人操作,请勿进行激活!否则你的邮箱将会被他人绑定。</div>
        </div>
        <div style="background: #fafafa; color: #b4b4b4;text-align: center; line-height: 45px; height: 45px; position: absolute; left: 0; bottom: 0;width: 100%;">系统邮件,请勿直接回复</div>
    </div>`, //邮件内容
  });


 console.log("Message sent: %s", info.messageId);
  // Message sent: <[email protected]>

  // Preview only available when sending through an Ethereal account
  console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));

转载请注明原文链接:node配置邮件服务
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址