2013-03-27 19 views
8

Gmailのようなウェブメールクライアントは、タグにtarget="_blank"を追加するなど、HTMLメールの改ざんを行うことを最近知った。GmailがURLの値を削除しないようにするにはどうすればよいですか?

私はまた、他の変更も同様に起こることを発見しました。私のPHPスクリプトからHTMLメールをGmailに送信すると、リンクのURLに含まれる変数値が取り除かれます。したがって、たとえば、これは私が私のPHPコードに設定していた値である:

$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>'; 

しかし、電子メールをGmailで受信したときに、HTMLコードは次のように出てくる:

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

x1x1x1x1x1x1x1xおよび[email protected]は、<a>タグ内から削除されました。

Gmailに削除されないようにURLに渡す変数の値を保護するにはどうすればよいですか?

+1

電子メールの値を 'url_encode'で試してください – Crisp

+0

あなたはあなたの投稿を編集してPHPコードを追加してGmailにアクセスする方法を表示できますか? thx –

+0

@ alex-shesterov:私はPHPからGmailにアクセスしません。受け取ったメールにGmailが作用しています。 – Questioner

答えて

3

クリックすると、Gmailのメッセージの元のオリジナル/ソースが表示され、そのように見えるかどうかを確認できます。もしそうなら、Gmailがあなたの見ているメッセージのフォーマットをどのようにしているのかという問題を知っています。ソースであっても切り取られている場合は、あなたのWebページ/ PHP/CMS(コードを変更するもの)にコードが変更されているかどうか疑問に思っていました。

URL-encodingを@Crispとしてみてください。 W3 referenceです

1

これは完璧な答えではないかもしれませんが、アプリケーションで許可されている場合は、URL短縮機能を何度も使用しています。

http://goo.gl/はAPIが実装が簡単でGoogleが非常に高速であるため、私の好みです。私はクラス内で機能を持っており、私はそれを介して私のURLを実行し、私はそれが必要などこにも返すを送信します。

+0

+1非標準で完全ではありませんが、常に機能するソリューションの場合) –

+0

一部のスパムフィルタは、URL短縮名をスパムとして使用する電子メールをマークします。 Googleが自分のURL短縮機能をスパムとしてマークするかどうかはわかりません – Michael

0

htmlでの電子メールの使用は、Quoted-printableエンコーディングです。 $ mailContentの問題は、 "="を= 3Dで表す必要があるということです。

これを追加してみてください:$ mailContent = quoted_printable_encode($ mailContent);

関連する問題