Node.js:nodemailer + ejs 发送邮件

nodemailer: 在 node.js 环境下轻松实现邮件发送功能.

ejs: 高效的嵌入式 javascript 模板引擎,让你利用 javascript 生成HTML页面

1. 安装 nodemailer + ejs

npm install --save nodemailer ejs
npm install --save-dev @types/nodemailer

2. 发送文本信息

const transporter: Mail = createTransport({
  service: "qq", // 使用的是qq邮箱
  port: 465, // smtp端口
  auth: {
    user: `your_qq_email@qq.com`, // 用户名
    pass: `clcqtcdwmelbecde`, // 密码(此处使用的是: qq授权码)
  },
});

await transporter.sendMail({
  from: `your_qq_email@qq.com`, // 发件人
  to: `xxx@163.com, xxx2@163.com`, // 收件人,多个邮箱使用 , 间隔
  cc: `xxx@163.com`, // 抄送
  bcc: `xxx@163.com`, // 密送
  subject: `node.js yyds!`, // 邮件主旨
  text: `hello world!`, // 发送文本信息
});

3. 发送 html 信息

const transporter: Mail = createTransport({
  service: "qq", // 使用的是qq邮箱
  port: 465, // smtp端口
  auth: {
    user: `your_qq_email@qq.com`, // 用户名
    pass: `clcqtcdwmelbecde`, // 密码(此处使用的是: qq授权码)
  },
});

await transporter.sendMail({
  from: `your_qq_email@qq.com`, // 发件人
  to: `xxx@163.com, xxx2@163.com`, // 收件人,多个邮箱使用 , 间隔
  cc: `xxx@163.com`, // 抄送
  bcc: `xxx@163.com`, // 密送
  subject: `node.js yyds!`, // 邮件主旨
  html: `<h1 bgColor="red">hello world!</h1>`, // 发送html
});

4. 发送附件

const transporter: Mail = createTransport({
  service: "qq", // 使用的是qq邮箱
  port: 465, // smtp端口
  auth: {
    user: `your_qq_email@qq.com`, // 用户名
    pass: `clcqtcdwmelbecde`, // 密码(此处使用的是: qq授权码)
  },
});

await transporter.sendMail({
  from: `your_qq_email@qq.com`, // 发件人
  to: `xxx@163.com, xxx2@163.com`, // 收件人,多个邮箱使用 , 间隔
  cc: `xxx@163.com`, // 抄送
  bcc: `xxx@163.com`, // 密送
  subject: `node.js yyds!`, // 邮件主旨
  html: `<h1 bgColor="red">hello world!</h1>`, // 发送html
  // 发送附件
  attachments: [
    {
      filename: `abc.jpeg`, // 附件名称
      path: `${process.cwd()}/src/assets/girl.jpeg`, // 附件地址
    },
  ],
});

5. 使用ejs

const transporter: Mail = createTransport({
  service: 'qq', // 使用的是qq邮箱
  port: 465, // smtp端口
  auth: {
    user: `your_qq_email@qq.com`, // 用户名
    pass: `clcqtcdwmelbecde`, // 密码(此处使用的是: qq授权码)
  },
});

await transporter.sendMail({
  from: `your_qq_email@qq.com`, // 发件人
  to: `xxx@163.com, xxx2@163.com`, // 收件人
  cc: `xxx@163.com`, // 抄送
  bcc: `xxx@163.com`, // 密送
  subject: `node.js yyds!`, // 邮件主旨
  html: await ejs.render(`<h1 bgColor="red"><%= title %></h1>`, {title: 'hello world!'}, {async: true}),
});

 

转载作品,原作者:skypesky,文章来源:https://www.toutiao.com/i7010579959198548518/

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年12月7日 09:59
下一篇 2021年12月8日 11:48

相关推荐

  • vue3打印解决方案:Vue-Plugin-HiPrint

    Vue-Plugin-HiPrint 是一个Vue.js的插件,旨在提供一个简单而强大的打印解决方案。通过 Vue-Plugin-HiPrint,您可以轻松地在Vue.js应用程序中实现高度定制的打印功能。但是本文只简单介绍 Vue-Plugin-HiPrint 在vue3中如何使用固定模板打印的使用方法,以便可以快速集成并使用它。

    2023年12月15日
    03580
  • PHP使用http_build_query()构造URL字符串的方法

    1、明确需求 实战工作中经常会请求各种各样的接口,例如 • 微信网页授权接口 • 高德周边检索接口 • 发现:下图是根据接口文档开发后的代码,发现代码可读性差(ps. 参数的作用不…

    2021年12月5日 Php
    01910
  • AI智能助手
  • 前端上传大文件怎么处理

    背景 当我们在做文件的导入功能的时候,如果导入的文件过大,可能会导所需要的时间够长,且失败后需要重新上传,我们需要前后端结合的方式解决这个问题 思路 我们需要做几件事情如下: 对文…

    JavaScript 2022年1月19日
    01120
  • CSS适配iOS全面屏底部横条

    CSS适配iOS全面屏底部横条,所有开发者应对资源页面做好不同手机型号的适配效果,不影响用户的正常浏览使用。其中IOS全面屏手机底部横线不可遮挡页面的具体功能和内容。

    2023年12月28日
    0640
  • uniapp小程序自定义头部导航区域

    uniapp项目小程序中难免会有一些页面需要自定义头部导航区域,因为原生的头部太简陋了,本文记录下uniapp自定义小程序的头部导航。

    2024年8月6日 前端开发
    0360
  • js通过单击按钮实现全屏、退出全屏

    js通过单击按钮实现全屏、退出全屏

    Html/CSS 2022年4月13日
    01290

发表回复

登录后才能评论
分享本页
返回顶部