有没有办法阻止Gmail的“引用文字”隐藏我的电子邮件页脚?

时间:2011-04-08 12:23:34

标签: html gmail hidden

我向我的用户发送电子邮件,这些用户具有相同的主题,但除了页眉和页脚之外还包含不同的内容。标题包含徽标,“部分x的n”消息和<hr>,并且永远不会被隐藏。页脚包含<hr>,相同的“部分x的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>

这是截图:

iPhone screenshot

3 个答案:

答案 0 :(得分:10)

我能够通过在我的电子邮件页脚的每一行附加一个包含唯一不可见字符串的<span>来解决此问题。首先,我刚刚为每一行添加了time(),但是有些电子邮件客户端将其解释为电话号码并将字符串转换为URL。所以,我在字符串前面/后面添加了一个非数字字符,事情似乎正常。

必须有更好的方法来做到这一点......

答案 1 :(得分:4)

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

默认情况下,此助手包含一个隐藏的<span>,其中每个</p>标记前都有一个5个字符的随机字符串。

这是执行技巧的代码片段(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);
}

不再分发电子邮件了!

答案 2 :(得分:0)

这是其他答案中的技术,但这是我添加到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>

只需要移到不应隐藏的内容之下即可。