Nodemailer+mjml实现自定义邮件模板以及发送

在平时使用邮箱发送邮件的时候,我们一般只用来发送文本内容。但是许多企业发送的邮件会有漂亮的邮件模板,并不只是单纯文本组成:
在这里插入图片描述

接下来我们会使用node.js的nodemailer库和响应式邮件模板mjml来实现如何定义这种邮件模板以及进行发送。

Nodemailer搭建服务

介绍

Nodemailer 是一个简单易用的 Node.JS 邮件发送模块(通过 SMTP,sendmail,或者 Amazon SES),支持 unicode,你可以使用任何你喜欢的字符集。并且,Nodemailer 具有高度安全性,支持Unicode、表情符号以及html内容。

项目搭建

新建文件夹email-project,初始化项目:

npm init

安装nodemailer模块:

npm install nodemailer

注意,在发送邮件之前,请确保你的邮箱已经开通了smtp服务。我这里是用的qq的邮箱服务:
在这里插入图片描述

有很清楚的操作提示,跟着做就可以。

email-project下新建server文件夹,新建mailer.js

const nodemailer = require("nodemailer")

const transporter = nodemailer.createTransport({
   
    service: "qq", // 内置传输发送邮件
    port: 465, // 端口 
    secureConnection: true, // 安全ssl连接
    // 授权认证
    auth: {
   
        // 用来发送邮件的邮箱
        user: "xxxxx@qq.com",
        // 不是邮箱登录密码,是smtp授权码
        pass: "你的smtp授权码"
    }
})

const mailOption = {
   
    from: "xxxxxxx@qq.com", // 发送的邮箱地址
    to: "yyyyyyyy@qq.com", // 接收的邮箱地址
    subject: "测试邮件!", // 邮箱的标题
    text: "测试内容!" // 正文内容
}

// 发送邮件
transporter.sendMail(mailOption, (error, info) => {
   
    if (error) {
   
        return console.log(error)
    }
    // 成功会返回messageId
    console.log("Message send: %", info.messageId)
})

这样,我们成功地运行了邮件服务,向指定的用户发送了一封测试邮件。

编写mjml邮件

介绍

MJML是一种标记语言,设计用于轻松实现一个响应式邮件。它的语义语法使得它容易和简单,而其丰富的标准组件库可以减少你开发时间,并减轻您的邮件代码库。MJML是一个开源的引擎能够将MJML转换成响应式布局的HTML。

在主流邮箱(如qq或163邮箱)中,邮件的编辑,模式可以切换到html模式:
在这里插入图片描述

但是,这种编辑模式需要使用非常老的table布局格式,并且兼容性很差。所以我们选择mjml来快速开发响应式邮件。

编写

安装mjml:

npm install mjml

email-project下新建template文件夹,新建test.mjml文件:

<mjml>
  <mj-head>
    <mj-title>注册成功!</mj-title>
    <mj-attributes>
      
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然可以!nodemailer是一个流行的Node.js库,用于发送电子邮件。下面是一个简单的nodemailer发送邮件的教程: 1. 首先,确保你已经安装了Node.js和npm。 2. 在你的项目文件夹中,打开终端并运行以下命令来安装nodemailer: ``` npm install nodemailer ``` 3. 创建一个新的JavaScript文件,比如`sendEmail.js`。 4. 在文件中引入nodemailer模块: ```javascript const nodemailer = require('nodemailer'); ``` 5. 创建一个邮件传输对象,并配置SMTP传输选项: ```javascript let transporter = nodemailer.createTransport({ service: 'Gmail', auth: { user: 'your_email@gmail.com', pass: 'your_password' } }); ``` 请注意,这里使用了Gmail作为邮件服务提供商,你需要替换成你自己的邮箱地址和密码。 6. 创建一个包含邮件内容的选项对象: ```javascript let mailOptions = { from: 'your_email@gmail.com', to: 'recipient_email@example.com', subject: 'Hello from nodemailer', text: 'This is a test email sent using nodemailer.' }; ``` 请将`from`字段替换为你自己的邮箱地址,`to`字段替换为收件人的邮箱地址。 7. 使用`transporter.sendMail()`方法发送邮件: ```javascript transporter.sendMail(mailOptions, function(error, info){ if (error) { console.log(error); } else { console.log('Email sent: ' + info.response); } }); ``` 如果邮件发送成功,你将会在控制台看到`Email sent: <message_id>`的输出。 这就是一个简单的nodemailer发送邮件的教程。你可以根据自己的需求进行更多的配置,比如添加附件、HTML内容等。如果你想了解更多关于nodemailer的详细信息,可以查阅官方文档:https://nodemailer.com/about/

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值