html
  • email
  • gmail
  • 2013-03-27 22 views 8 likes 
    8

    我最近了解到,Gmail等webmail客戶端會對HTML電子郵件進行更改,例如將target="_blank"添加到<a>標籤。如何阻止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不會將其刪除?

    +1

    嘗試'url_encode'電子郵件的值 – Crisp 2013-03-27 18:39:55

    +0

    您能否編輯您的文章幷包含php代碼,以顯示您如何訪問Gmail? thx – 2013-03-27 18:52:05

    +0

    @ alex-shesterov:我不從PHP訪問Gmail。 Gmail正在處理收到的電子郵件。 – Questioner 2013-03-27 18:53:05

    回答

    3

    點擊查看原文/來源關於Gmail中的郵件,看看這些網址看起來應該如何。如果是這樣,那麼您知道問題在於Gmail如何格式化消息以供查看。如果它即使在源代碼中被破壞,我也想知道你的網頁/ php/CMS中是否有任何東西(你使用它)來改變代碼。

    你應該試試URL-encoding @Crisp說。這裏是W3 reference

    1

    這可能不是一個完美的答案,但是如果您的應用程序允許,我已經多次使用網址縮寫。

    http://goo.gl/是我的首選,因爲API非常容易實現,谷歌非常快。我在一個類中有一個函數,我只需通過它運行我的url並在需要的地方發送返回。

    +0

    對於非標準和非完美但始終可行的解決方案+1) – 2013-03-27 18:54:14

    +0

    請注意,某些垃圾郵件過濾器會將使用URL縮短郵件的電子郵件標記爲垃圾郵件。我不知道Google是否會將自己的網址縮短標記爲垃圾郵件 – Michael 2017-04-02 09:14:59

    0

    在html中使用電子郵件使用Quoted-printable編碼。 $ mailContent的問題是「=」必須用= 3D

    嘗試添加: $ mailContent = quoted_printable_encode($ mailContent);

    相關問題