使用 Nodemailer 发送 HTML 邮件模板


使用 nodemailer 发送 html 邮件模板

本文介绍了如何使用 Nodemailer 发送包含 HTML 模板的邮件。核心在于正确构造 `html` 选项,利用模板字符串和变量插值,动态生成邮件内容。同时,强调了模板字符串的正确使用方式,避免常见的语法错误,并提供可直接使用的代码示例。

使用 Nodemailer 发送 HTML 邮件的关键在于 mailOptions 对象的 html 属性。该属性允许你指定邮件的正文内容为 HTML 格式,从而实现更丰富的邮件样式和布局。以下是如何正确构造和使用 html 属性的详细说明。

使用模板字符串(Template Literals)

J*aScript 的模板字符串提供了一种便捷的方式来构建包含变量的字符串。它们使用反引号 () 包裹字符串,并允许使用${}` 语法插入变量。这对于动态生成 HTML 内容非常有用。

示例代码

const nodemailer = require('nodemailer');

// 假设从请求体中获取了以下数据
const name = 'John Doe';
const email = 'john.doe@example.com';
const phone = '123-456-7890';
const message = 'Hello, this is a test message.';

// 创建一个 Nodemailer 传输器
const transporter = nodemailer.createTransport({
    service: 'gmail', // 或者其他邮件服务提供商
    auth: {
        user: process.env.AUTH_EMAIL, // 你的邮箱地址
        pass: process.env.AUTH_PASSWORD  // 你的邮箱密码或授权码
    }
});

const mailOptions = {
    from: process.env.AUTH_EMAIL,
    to: 'recipient@example.com', // 收件人邮箱地址
    subject: 'Community Partnership Project Contact Form Inquiry',
    html: `
        <div>
            <p>Name: ${name}</p>
            <br/>
            <p>Email: ${email}</p>
                    <div class="aritcle_card">
                        <a class="aritcle_card_img" href="/xiazai/code/8811">
                            <img src="https://img.php.cn/upload/webcode/000/000/018/175682520638496.jpg" alt="北方供求二手分类信息系统">
                        </a>
                        <div class="aritcle_card_info">
                            <a href="/xiazai/code/8811">北方供求二手分类信息系统</a>
                            <p>一套专业的供求二手信息发布系统,具有会员发布信息和游客发布功能,信息审核,信息分类,信息编辑,会员管理,新闻管理,简介清新的模板v3.7更新:增加过期信息重发功能后台增加管理员直接发布供求信息功能后台增强供求信息编辑功能(采用编辑器,可以发布图片信息以及排版)增加信息邮件自动验证审核机制(后台可设定:直接发布/管理员审核/邮件验证)增加信息审核后,发送邮件通知功能(后台可选择是否开启此功能)改进邮</p>
                            <div class="">
                                <img src="/static/images/card_xiazai.png" alt="北方供求二手分类信息系统">
                                <span>0</span>
                            </div>
                        </div>
                        <a href="/xiazai/code/8811" class="aritcle_card_btn">
                            <span>查看详情</span>
                            <img src="/static/images/cardxiayige-3.png" alt="北方供求二手分类信息系统">
                        </a>
                    </div>
                
            <br/>
            <p>Phone: ${phone}</p>
            <br/>
            <p>Message: ${message}</p>
        </div>
    `
};

// 发送邮件
transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
        console.log('Error sending email:', error);
    } else {
        console.log('Email sent:', info.response);
    }
});

代码解释

  1. 引入 Nodemailer: const nodemailer = require('nodemailer'); 引入 Nodemailer 库。
  2. 创建传输器 (Transporter): 使用 nodemailer.createTransport() 创建一个传输器,配置邮件服务提供商和认证信息。 请务必使用环境变量或安全的方式存储你的邮箱密码,避免硬编码在代码中。
  3. 构造 mailOptions 对象:
    • from: 发件人邮箱地址。
    • to: 收件人邮箱地址。
    • subject: 邮件主题。
    • html: 使用模板字符串构建的 HTML 内容。 注意反引号的使用,以及 ${variable} 语法来插入变量。
  4. 发送邮件: 使用 transporter.sendMail() 发送邮件。 该方法接受 mailOptions 对象和一个回调函数,用于处理发送结果。

注意事项

  • 转义 HTML 特殊字符: 如果变量中包含 HTML 特殊字符(如 、&),需要进行转义,以避免 HTML 注入攻击。可以使用 escape-html 等库进行转义。
  • CSS 样式: 为了保证邮件在不同客户端上的显示效果一致,建议使用内联 CSS 样式。
  • 邮件服务提供商限制: 某些邮件服务提供商对邮件大小、发送频率等有限制,需要注意遵守相关规定。
  • 安全性: 避免在 HTML 模板中直接拼接用户输入,防止 XSS 攻击。对用户输入进行适当的验证和过滤。
  • 异步操作: transporter.sendMail 是一个异步操作,请确保正确处理回调函数中的错误和成功情况。

总结

使用 Nodemailer 发送 HTML 邮件的关键在于正确使用模板字符串和变量插值,并注意安全性问题。 通过合理地组织 HTML 结构和 CSS 样式,可以创建出美观且功能丰富的邮件模板,提升用户体验。 记得配置正确的邮件服务提供商信息和认证信息,并处理发送邮件过程中的错误。

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


# javascript  # word  # java  # html  # css  # 双击  # seo983 下载  # 温州网站推广优化案例  # 哪里有人推广网站  # 金山区百度网站优化方案  # 淘宝seo新手  # 自适应  # 全选  # 关键在于  # 创建一个  # 网页设计  # 邮箱地址  # 信息系统  # 发送邮件  # 回调  # 邮箱  # 环境变量  # ai  # 回调函数  # 编码  # node  # 巴中手机网站建设营销  # 迎泽区网站建设价格表  # 重庆市可靠网络营销推广  # 网站建设安全证书  # 抖音优化seo软件 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: @Team是什么?揭秘团队含义  更换小红书群背景怎么换?小红书群规则怎么设置?  Flask 应用中图片动态更新与上传:实现客户端定时刷新与服务器端文件管理  Animex动漫社社登录官网 Animex动漫社资源社入口直达  实时数据流中高效查找最小值与最大值  狙击外星人小游戏在线链接_狙击外星人小游戏网页链接  苹果iPhone14ProMax如何新建AppleID_iPhone14ProMax新建AppleID具体流程  Coolpad5890 ROM刷机包  顺丰快递收费标准查询_如何查看顺丰最新收费价格  PHP页面重载时变量值不重置的实现方法  PHP动态导航按钮:根据用户登录状态切换链接与文本  Go语言中方法接收器的选择:值类型还是指针类型?  百度网盘网页入口链接分享 百度网盘官网入口网页登录  火狐浏览器如何刷新修复浏览器 火狐浏览器“重置Firefox”功能详解  海棠阅读登录教程_详细讲解海棠登录操作  汽水音乐网页版登录 汽水音乐网页端官方入口  《大周列国志》皇帝律令功能介绍  创建快捷方式启动系统保护  win11如何开启单声道音频 Win11为听障用户合并左右声道【辅助】  Pandas中基于动态偏移量实现DataFrame列值位移的策略  iQOO手机信号差网络不稳定怎么办 信号问题原因排查与增强设置【攻略】  如何取消数字签名  《长生:天机降世》火塔小怪大全  J*aScript对象中深度嵌套URL键的查找与更新策略  Mac如何开启画中画模式_Mac Safari浏览器视频画中画功能  小米手机屏幕失灵乱跳怎么办 屏幕触控问题自检与临时解决方法【应急】  《雅迪智行》用手机开锁方法  秋风萧瑟洪波涌起中的萧瑟指的是什么  优化CSS动画与J*aScript定时器协同:构建稳定Toast提示  《金山词霸》语音翻译方法  使用 J*aScript 随机化 CSS Grid 布局中的元素顺序  Python定时发送QQ消息  《搜书吧》阅读书籍方法  139邮箱登录入口官网 139邮箱登录入口官网网址  Composer如何使用composer-plugin-api开发自定义插件  《领英》查看屏蔽名单方法  《小黑盒》删除历史浏览方法  Golang如何实现HTTP请求重试机制_Golang HTTP请求错误处理策略  《猎聘》筛选猎头岗位方法  Word 2003字体大小设置方法  汽车之家网页版免费登录_汽车之家官网首页直接进入  b站如何剪辑视频_b站必剪app使用教程  《360浏览器》设置摄像头权限方法  如何定制PrimeNG Sidebar的背景颜色  tiktok国际版入口_tiktok官网网页版链接  Win10怎么设置快速启动 Win10开启快速启动设置方法  Linux如何开发轻量级数据服务模块_Linux服务化设计  小红书网页版怎么进 小红书网页版通用入口  Scipy Sparse CSR 矩阵非零元素行级遍历的最佳实践  ToDesk远程摄像头功能使用方法_ToDesk远程视频画面查看设置教程 

 2025-10-26

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.