【问题标题】:What is the most successful/appropriate way to hide a string in an HTML e-mail?在 HTML 电子邮件中隐藏字符串的最成功/最合适的方法是什么?
【发布时间】:2012-07-13 18:56:15
【问题描述】:

我需要在电子邮件的 HTML 中隐藏一个 30 个字符的字符串,这样当用户回复时,他们的回复可以在我们的服务器上链接到该 30 个字符的字符串。我们不想将字符串添加到用户可以看到的电子邮件主题或正文中。我们也不想隐藏会导致意外选择 30 个字符串的文本。

问题: 许多电子邮件客户端(如 gmail)将 HTML 电子邮件内容简化为基本标签,因此很难找到可以包含任意字符串的标签。这意味着我们不能创建任意标签,只能使用标准标签。

我们最好的解决方案: 隐藏电子邮件中表格的“标题”标签中的字符串,像这样 -

<table title="30_character_string">

上述解决方案在大多数情况下都有效。大多数电子邮件客户端不会去掉标题标签,这是一个可行的选择。

我们为什么会卡住:这不是最好的解决方案,因为有时电子邮件客户端会变得非常严格,甚至会删除标题属性。

您能帮忙吗? 在 HTML 电子邮件正文中隐藏任意字符串的最成功方法是什么?这种链接有更好的解决方案吗?

【问题讨论】:

  • 你想达到什么目的?在我看来,您所要求的一切都可以通过标准电子邮件标题(参考:和消息 ID:并且可能使用唯一的 From: 每个客户的地址作为后备)来实现。
  • 嘿 Tripleee,这听起来是一个更好的方法,但我对电子邮件标题的了解非常有限。我们的整个后端都是 Python,在尝试修改标题之后,我没有想出太多。你有什么资源可以让我看看吗?
  • 这似乎是一个更好的方法。我要深入一点。感谢您的建议!

标签: html email gmail html-parsing


【解决方案1】:

如果您将值放在标记中,纯文本回复将不起作用。考虑在电子邮件底部签名下方的“小字体”部分。

尊敬的用户,

电子邮件内容

问候,

标志等

ReplyIdentifer-xxxxxxxx.

如果您不关心,请在电子邮件底部添加一个 div(同样位于 sig 下方)。而且,它会在电子邮件的底部,用户很少会在意查看。

<style>.hide{display:none;}</style>
<div style="display:none" class="hide">ReplyIdentifer-xxxxxxxx.</div>

在这种情况下,您只有在电子邮件客户端删除 css AND 样式标签时才能看到它。

【讨论】:

  • +1;这是一个很好的答案。特别是当这种方法试图向用户隐藏任何信息(非 html 部分)时。
  • @home 谢谢!还应考虑垃圾邮件过滤器。隐藏的内容可能会被误解为恶意内容。
  • 感谢您的回复,但此解决方案将不起作用,因为 Gmail 不允许隐藏
    元素。使用此方法,标识符以纯文本形式可见。
  • 我会重新考虑将其隐藏为一项要求。您将如何处理纯文本回复(例如,通常移动设备以纯文本回复)?您将完全丢失标识符。如果用户失去使用 iPhone 的功能,那将不会提供最好的用户体验。那是很多失去的客户:)
  • 感谢您的关注。我们管理基于文本的电子邮件不同于 HTML。这个问题是针对 HTML 的。
【解决方案2】:

检查我收到的一些 HTML 电子邮件,Gmail 似乎允许在电子邮件 HTML 中使用 &lt;head&gt; 标记。您可以将信息包含在电子邮件头部的&lt;meta&gt; 标记中。

您使用哪种类型的帐户阅读邮件?如果它也是 Gmail,你可以利用他们的能力来允许abritary strings in your emails address after a plus symbol。将您在外发邮件中设置的回复标头覆盖为youraddress+uniqueID@gmail.com

编辑: 如果您确保生成每个发出的邮件副本都有一个唯一的Message ID 标头,您返回的In-Reply-To 标头对于该收件人和该邮件应该是唯一的。 Gmail 尊重邮件 ID 标头并提供适当的回复标头作为响应,大多数(所有?)主流客户端/服务也应该这样做

【讨论】:

  • 感谢您的回答。不幸的是,这两种方法都不起作用,因为元标记经常被消除,而且这个系统必须不仅仅适用于 gmail。
  • (只是扩展了这个答案,虽然不确定我是否应该创建一个新答案)
猜你喜欢
相关资源
最近更新 更多
热门标签