You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在打开邮件客户端时预填充格式化HTML内容?

解决Apple Mail中mailto链接HTML内容显示异常的问题

嘿,我来帮你搞定这个问题!首先得戳破一个关键点:mailto协议本身根本不支持在body参数里直接嵌HTML代码。像Apple Mail这类客户端,会把你写的<div>之类的标签当成纯文本直接显示出来,完全不会去解析渲染,这就是你看到异常的核心原因。

下面给你几个可行的解决思路,你可以根据自己的需求选:

方案1:用纯文本替代HTML(最稳妥)

如果你的内容不需要复杂排版,纯文本就能搞定的话,这是兼容性最好的方式,所有邮件客户端都能完美适配:

const content = "Nézd mit találtam ..";
// 一定要用encodeURIComponent编码,避免特殊字符搞乱URL
window.location.href = `mailto:user@example.com?subject=${encodeURIComponent('Jelentkezz vagy oszd meg és nyerj 250$-t')}&body=${encodeURIComponent(content)}`;

对了,subject部分最好也编码一下,避免像匈牙利语里的特殊字符出现乱码。

方案2:服务器端发送HTML邮件(必须要HTML的话选这个)

如果你的需求必须要HTML格式的邮件,那mailto这条路走不通,得换服务器端发送的方式。比如用Node.js的Nodemailer、PHP的PHPMailer这类工具,直接生成HTML邮件发送。给你个Nodemailer的简单示例:

const nodemailer = require('nodemailer');

async function sendHtmlEmail() {
  // 配置邮件传输器,这里用Gmail举例,你也可以用其他服务商
  let transporter = nodemailer.createTransport({
    service: 'Gmail',
    auth: {
      user: '你的邮箱地址@example.com',
      pass: '你的邮箱密码或应用专用密码'
    }
  });

  // 发送HTML邮件
  let info = await transporter.sendMail({
    from: '你的邮箱地址@example.com',
    to: 'user@example.com',
    subject: 'Jelentkezz vagy oszd meg és nyerj 250$-t',
    html: '<p>Nézd mit találtam ..</p><div></div>' // 这里直接写你要的HTML内容
  });

  console.log('邮件发送成功啦!消息ID: %s', info.messageId);
}

sendHtmlEmail().catch(err => console.error('发送失败:', err));

这种方式能确保HTML被正确渲染,不管是Apple Mail还是其他客户端都能正常显示。

方案3:尝试Apple Mail支持的简单文本格式(仅适用于基础排版)

Apple Mail对mailto的body里的换行是支持的,你可以用%0D%0A来代表换行,但HTML标签还是不会被解析。比如:

const content = "Nézd mit találtam ..%0D%0A%0D%0A这里是空行后的内容";
window.location.href = `mailto:user@example.com?subject=${encodeURIComponent('Jelentkezz vagy oszd meg és nyerj 250$-t')}&body=${encodeURIComponent(content)}`;

但这种方式只能搞点简单的换行,复杂的样式还是没戏,所以只推荐在纯文本也能满足需求的时候用。

最后再啰嗦一句:mailto本来就是用来快速发纯文本邮件的,要是需要HTML邮件,服务器端发送才是正确的打开方式哦!

内容的提问来源于stack exchange,提问作者János

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 18:02:29