【问题标题】:Is there a trick to prevent Gmail's "quoted text" from hiding my email footer?是否有防止 Gmail 的“引用文本”隐藏我的电子邮件页脚的技巧?
【发布时间】:2011-04-08 12:23:33
【问题描述】:

我向我的用户发送具有相同主题但包含除页眉和页脚之外的不同内容的电子邮件。标头包含一个徽标、“n 的第 x 部分”消息和 <hr>,并且从不隐藏。页脚包含一个<hr>、相同的“Part x of n”文本和一些我不想隐藏的功能链接(Next、Pause、Tweet)。

我尝试将这些包含在 <div id=timestamp> 中。我还尝试将&ts=timestamp 添加到链接中。链接是图像,因此我创建了一个名为 image2.png 的符号链接,指向 image1.png 并交替使用这些图像。这些都不起作用。

有没有我还没有想到的简单解决方案?

这是一些 html:

names are really separated by, rather than just a comma.</p>
<p>This function does not do any checking for problems. We assume,
in this case, that the input is always correct.</p>
</div>
</div>
<div>
<p>All that remains now is putting the pieces together.</div></div></div></div></span>
<hr>(Part 19 of about 74)<br>
<a href='http://www.mywebapp.com/index.php?action=next'>
<img border=0 src='http://www.mywebapp.com/images/next.png' alt='Get next text'</a>&nbsp;&nbsp;
<a href='http://www.mywebapp.com/index.php?action=pause&listid=252&itemid=2100'>
<img border=0 src='http://www.mywebapp.com/images/pause.png' alt='Pause this text'></a>&nbsp;&nbsp;
<a href='http://twitter.com/home?status=tweetGoesHere'><img border=0 src='http://www.mywebapp.com/images/twitter-a.png' alt='Tweet this'/></a><br>
Original page: <a href='http://eloquentjavascript.net/print.html'>here</a><br>

这是一个截图:

【问题讨论】:

  • (严肃地说,你能提供截图来说明发生了什么吗?还有你的一些 HTML 代码?否则都是猜测。)
  • 我添加了截图和一些html。
  • @SeanO:HTML 与屏幕截图不匹配。
  • @Tomalak Geret'kal:你看到的其他一切都是 Gmail 的 iphone 界面。
  • GMail 认为引用的文本具体是什么?您是否正确设置了电子邮件的 MIME 类型?

标签: html gmail hidden


【解决方案1】:

我能够通过在我的电子邮件页脚的每一行附加一个包含唯一不可见字符串的&lt;span&gt; 来解决这个问题。起初,我只是将time() 添加到每一行,但一些电子邮件客户端将其解释为电话号码并将字符串转换为 URL。所以,我在字符串前/后添加了一个非数字字符,一切似乎都很好。

但一定有更好的方法来做到这一点......

【讨论】:

  • 这正是我目前正在做的。你有没有找到其他方法?我非常讨厌“显示引用的文本”,因为它隐藏了整个电子邮件,并且我使用我制作的自定义支持票证系统发送了具有相同主题的电子邮件。你有没有找到更好的方法来做到这一点?如果不是,您是如何使随机字符串不可见的?
  • 嗯,我知道你是如何让它不可见的,我只是不知道如何让一串不可见的字母。我只知道怎么用rand()做一个随机的数字串。
  • 和我一样,您可以创建一个随机数(例如 154385553)并执行此操作 z154385553z。或者,你可以 md5() 你的随机数来创建它的哈希值并使用它。
  • 我使用您的技巧创建了一个小型辅助函数(请参阅下面的答案),现在它会自动随机化我所有的外发电子邮件,防止 gmail 将它们分割成碎片。谢谢!
【解决方案2】:

在从 Gmail 中将我的事务性电子邮件分解成块并隐藏其中重复的部分变得疯狂之后,我在 meanie-mail-composer 包中实现了一个受 SeanO 答案启发的帮助函数,以自动为我添加随机字符串。

默认情况下,此帮助程序在每个 &lt;/p&gt; 标记之前包含一个隐藏的 &lt;span&gt; 和一个 5 个字符的随机字符串。

这里是解决问题的代码 sn-p (Node.js):

const crypto = require('crypto');

//Helper to randomize HTML contents
function randomize(html, tag = '</p>') {

  //Create a 5 char random string for email content to be unique
  const time = String(Date.now());
  const hash = crypto
    .createHash('md5')
    .update(time)
    .digest('hex')
    .substr(0, 5);

  //Create HTML string to replace with and regex
  const str = `<span style="display: none !important;">${hash}</span>${tag}`;
  const regex = new RegExp(tag, 'g');

  //Replace in HTML
  return html.replace(regex, str);
}

没有更多破碎的电子邮件!

【讨论】:

  • 很高兴有帮助! 5 1/2 年前的帖子能帮上忙真是太好了。
  • 很遗憾,一个 5 1/2 年前的问题仍然存在于 Gmail 中,我们对此无能为力...... :(
  • 当心这些随机哈希值会出现在 gmail 的“消息预览”文本中。解决方案是在打开 . 之后立即将要显示为预览的任何文本粘贴在不可见的跨度中
【解决方案3】:

这是其他答案中的技术,但这是我添加到我的 rails 电子邮件模板中的确切行:

<%# this line makes gmail not quote/fold/hide the message body %>
<span style="color: #FFF; display: none; font-size: 8px;"><%= rand(36**20).to_s(36) %></span>

只需要在不应该​​隐藏的内容下方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 2018-08-26
    • 1970-01-01
    • 2011-11-16
    • 2015-01-16
    • 1970-01-01
    • 2012-04-11
    相关资源
    最近更新 更多