使用 Nodemailer 发送 HTML 模板邮件

心靈之曲
发布: 2025-10-28 12:03:33
原创
166人浏览过

使用 nodemailer 发送 html 模板邮件

本文介绍了如何使用 Nodemailer 发送包含 HTML 模板的邮件。通过使用模板字符串和变量插值,您可以动态地生成邮件内容,并将其发送给指定的收件人。文章提供详细的代码示例,并解释了在 Nodemailer 中使用 HTML 模板的关键步骤和注意事项,帮助开发者轻松实现邮件发送功能。

Nodemailer 是一个流行的 Node.js 模块,用于发送电子邮件。它支持多种传输方式,包括 SMTP、Sendmail 和 Amazon SES。 除了发送纯文本邮件,Nodemailer 还允许你发送包含 HTML 内容的邮件,这使得你可以创建更丰富、更具吸引力的邮件。

发送 HTML 邮件

要使用 Nodemailer 发送 HTML 邮件,你需要设置 html 选项,其值为包含 HTML 代码的字符串。例如:

const nodemailer = require('nodemailer');

// 创建一个 transporter 对象
let transporter = nodemailer.createTransport({
  host: 'your_smtp_host',
  port: 587,
  secure: false, // true for 465, false for other ports
  auth: {
    user: 'your_email@example.com',
    pass: 'your_email_password'
  }
});

// 邮件选项
let mailOptions = {
  from: 'your_email@example.com',
  to: 'recipient@example.com',
  subject: 'Hello from Nodemailer',
  html: '<h1>Welcome</h1><p>That was easy!</p>'
};

// 发送邮件
transporter.sendMail(mailOptions, (error, info) => {
  if (error) {
    return console.log(error);
  }
  console.log('Message sent: %s', info.messageId);
});
登录后复制

这段代码会发送一封包含标题为 "Welcome" 的 H1 标签和一段文字的 HTML 邮件。

立即学习前端免费学习笔记(深入)”;

AiPPT模板广场
AiPPT模板广场

AiPPT模板广场-PPT模板-word文档模板-excel表格模板

AiPPT模板广场 147
查看详情 AiPPT模板广场

使用模板字符串

直接在 JavaScript 代码中拼接 HTML 字符串可能比较繁琐,特别是当 HTML 结构比较复杂时。这时,可以使用模板字符串来更方便地构建 HTML 内容。模板字符串允许你在字符串中嵌入变量,使代码更具可读性和可维护性。

const nodemailer = require('nodemailer');

// 创建一个 transporter 对象
let transporter = nodemailer.createTransport({
  host: 'your_smtp_host',
  port: 587,
  secure: false, // true for 465, false for other ports
  auth: {
    user: 'your_email@example.com',
    pass: 'your_email_password'
  }
});

// 假设我们有一些动态数据
const name = 'John Doe';
const email = 'john.doe@example.com';

// 邮件选项
let mailOptions = {
  from: 'your_email@example.com',
  to: 'recipient@example.com',
  subject: 'Hello from Nodemailer',
  html: `
    <h1>Hello, ${name}!</h1>
    <p>Your email address is: ${email}</p>
  `
};

// 发送邮件
transporter.sendMail(mailOptions, (error, info) => {
  if (error) {
    return console.log(error);
  }
  console.log('Message sent: %s', info.messageId);
});
登录后复制

在这个例子中,我们使用了模板字符串(用反引号 `包裹)来构建 HTML 内容。${name}和${email}` 会被实际的变量值替换。

注意事项

  • 安全性: 当从用户输入或其他不可信来源获取数据时,务必对数据进行适当的转义,以防止 HTML 注入攻击。
  • HTML 结构: 确保你的 HTML 代码结构正确,并且符合邮件客户端的兼容性要求。 某些 CSS 样式可能无法在所有邮件客户端中正常显示。建议使用内联 CSS 样式,并尽量避免使用复杂的 CSS 布局。
  • 测试: 在发送大量邮件之前,务必先进行测试,以确保邮件内容显示正确,并且能够成功送达收件人。

总结

使用 Nodemailer 发送 HTML 邮件非常简单。通过结合模板字符串,可以方便地构建动态的邮件内容。 在使用过程中,需要注意安全性、HTML 结构和兼容性,并进行充分的测试。 通过遵循这些建议,你可以轻松地使用 Nodemailer 发送美观、专业的 HTML 邮件。

以上就是使用 Nodemailer 发送 HTML 模板邮件的详细内容,更多请关注php中文网其它相关文章!

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号