Есть ли хитрость, которая не позволяет «цитируемому тексту» Gmail скрывать мой нижний колонтитул? - PullRequest
11 голосов
/ 08 апреля 2011

Я отправляю электронные письма своим пользователям, которые имеют одинаковую тему, но содержат различное содержимое, кроме верхнего и нижнего колонтитула. Заголовок содержит логотип, сообщение «Часть x из n» и <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>

А вот скриншот:

iPhone screenshot

Ответы [ 2 ]

10 голосов
/ 12 мая 2011

Мне удалось решить эту проблему, добавив <span>, содержащий уникальную невидимую строку, в каждую строку нижнего колонтитула моей электронной почты.Сначала я просто добавил time() к каждой строке, но некоторые почтовые клиенты интерпретируют это как номер телефона и преобразуют строку в URL.Итак, я предварительно / добавил к строке нечисловой символ, и кажется, что все работает нормально.

Хотя должен быть лучший способ сделать это ...

4 голосов
/ 16 декабря 2016

После того, как Gmail разбил мои транзакционные электронные письма на блоки и скрыл повторяющиеся части, я реализовал вспомогательную функцию, вдохновленную ответом SeanO, в своем пакете meanie-mail-composer для автоматизации добавления случайные строки для меня.

Этот помощник содержит скрытую <span> со случайной строкой из 5 символов перед каждым тегом </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);
}

Больше нет разбитых писем!

...