13 Stimmen

Gibt es einen Trick, um zu verhindern, dass der "zitierte Text" von Google Mail meine E-Mail-Fußzeile verdeckt?

Ich sende E-Mails an meine Benutzer, die denselben Betreff haben, aber abgesehen von Kopf- und Fußzeile unterschiedliche Inhalte enthalten. Die Kopfzeile enthält ein Logo, eine Nachricht "Teil x von n" und eine <hr> und ist niemals verborgen. Die Fußzeile enthält eine <hr> den gleichen Text "Teil x von n" und einige funktionale Links (Weiter, Pause, Tweet), die ich nicht ausblenden möchte.

Ich habe versucht, diese in eine <div id=timestamp> . Ich habe auch versucht, Folgendes hinzuzufügen &ts=timestamp zu den Links. Da es sich bei den Links um Bilder handelt, habe ich einen symbolischen Link namens image2.png erstellt, der auf image1.png verweist, und diese Bilder abwechselnd angezeigt. Keines dieser Links funktionierte.

Gibt es eine einfache Lösung, an die ich noch nicht gedacht habe?

Hier ist etwas 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>

Und hier ist ein Bildschirmfoto:

iPhone screenshot

1 Stimmen

(Im Ernst: Können Sie Screenshots zur Verfügung stellen, die zeigen, was vor sich geht? Und etwas von Ihrem HTML-Code? Sonst sind das alles nur Vermutungen.)

0 Stimmen

Ich habe ein Bildschirmfoto und etwas html hinzugefügt.

0 Stimmen

@SeanO: Das HTML stimmt nicht mit dem Screenshot überein.

12voto

SeanO Punkte 638

Ich konnte dieses Problem lösen, indem ich eine <span> mit einer eindeutigen unsichtbaren Zeichenfolge in jeder Zeile der Fußzeile meiner E-Mail. Zuerst fügte ich einfach time() an jede Zeile an, aber einige E-Mail-Clients interpretieren dies als Telefonnummer und wandeln die Zeichenfolge in eine URL um. Also habe ich der Zeichenkette ein nichtnumerisches Zeichen vorangestellt bzw. angehängt, und alles scheint gut zu funktionieren.

Es muss doch einen besseren Weg geben, dies zu tun...

6voto

Adam Reis Punkte 3742

Nachdem Gmail meine Transaktions-E-Mails in Blöcke aufgeteilt und sich wiederholende Teile ausgeblendet hat, habe ich eine Hilfsfunktion implementiert, die von SeanOs Antwort in meinem meanie-mail-composer Paket, um das Hinzufügen zufälliger Zeichenfolgen für mich zu automatisieren.

Dieses Hilfsmittel enthält eine versteckte <span> mit einer 5-Zeichen-Zufallszeichenfolge vor jeder </p> Tag standardmäßig.

Hier ist der Codeschnipsel, mit dem der Trick funktioniert (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);
}

Keine unterbrochenen Emails mehr!

1voto

pdenya Punkte 365

Dies ist die Technik aus den anderen Antworten, aber dies ist genau die Zeile, die ich zu meinen Rails-E-Mail-Vorlagen hinzugefügt habe:

<%# 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>

Es muss nur unter dem Inhalt stehen, der nicht ausgeblendet werden soll.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X