2013-03-27 3 views
8

Ich habe kürzlich erfahren, dass Webmail-Clients wie Google Mail Änderungen an HTML-E-Mails vornehmen, zum Beispiel target="_blank" zu <a> Tags hinzufügen.Wie kann ich Google Mail davon abhalten, die Werte aus URLs zu entfernen?

Ich habe auch entdeckt, dass andere Änderungen auch passieren. Wenn ich aus meinem PHP-Skript eine HTML-E-Mail an Gmail (und möglicherweise andere Webmail-Clients) sende, werden die in der URL aller Links enthaltenen Variablenwerte entfernt. So zum Beispiel, das ist der Wert, den ich in meinem PHP-Code bin Einstellung:

$mailContent = '<p><a target="_blank" href="https://example.com/confirmation.html?verification=x1x1x1x1x1x1x1x&[email protected]">click here to go to the web site and activate your account!</a></p>'; 

Aber wenn die E-Mail in Google Mail empfangen wird, der HTML-Code kommt aus wie folgt aus:

<p><a target="_blank" href="https://example.com/confirmation.html?verification=&email=">click here to go to the web site and activate your account!</a></p> 

Die Die Werte x1x1x1x1x1x1x1x und [email protected] wurden innerhalb des Tags <a> entfernt.

Wie schütze ich die Werte der Variablen, die ich an die URL weitergeben möchte, damit Gmail sie nicht entfernt?

+1

versuchen 'url_encode's die E-Mail-Wert – Crisp

+0

können Sie bitte bearbeiten Sie Ihren Beitrag und php-Code, um zu zeigen, wie Sie auf Google Mail zugreifen? thx –

+0

@ alex-shesterov: Ich greife nicht auf Google Mail von PHP. Gmail handelt auf die E-Mail, die es erhält. – Questioner

Antwort

3

Klicken Sie auf Zeigen Sie Original/Quelle auf die Nachricht in Gmail, um zu sehen, wie die URLs dann aussehen sollten. Wenn dies der Fall ist, wissen Sie, dass das Problem darin besteht, wie Google Mail die Nachricht für Ihre Anzeige formatiert. Wenn es selbst in der Quelle verstümmelt ist, habe ich mich gefragt, ob es irgendetwas in deiner Webseite/php/CMS gibt (benutzt du eins), das den Code ändert.

Sie sollten URL-encoding versuchen, wie @Crisp sagte. Hier ist die W3 reference.

1

Dies ist vielleicht nicht die perfekte Antwort, aber wenn Ihre Anwendung es erlaubt, habe ich URL Kürzern mehrmals verwendet.

http://goo.gl/ ist meine bevorzugte, weil die API ist sehr einfach zu implementieren und Google ist sehr schnell. Ich habe eine Funktion in einer Klasse und ich lasse einfach meine URL durch und sende die Rückgabe, wo immer ich sie brauche.

+0

+1 für eine nicht standardmäßige und nicht perfekte, aber immer funktionierende Lösung) –

+0

Beachten Sie, dass einige Spamfilter E-Mails mit URL-Kürzern als Spam markieren. Ich weiß nicht, ob Google seinen eigenen URL-Shortener als Spam markieren wird – Michael

0

Emailing in HTML verwendet Quoted-printable Encoding. Das Problem mit Ihrem $ mailContent ist, dass das "=" durch = 3D

dargestellt wird. Versuchen Sie Folgendes hinzuzufügen: $ mailContent = quoted_printable_encode ($ mailContent);

Verwandte Themen