我目前正在從PHP的mail()函數發送html格式的電子郵件,并簡單地檢查它們,以確保它們顯示為HTML(除了格式之外,我很清楚格式會因客戶端而異(可能變化很大))。它們在蘋果郵件客戶端和我的iPhone上都顯示為HTML格式。然而,Gmail完全拒絕將其顯示為HTML格式。我并不是說它的格式不正確,它只是看起來沒有使用HTML。
奇怪的是,來自標簽的img正在被加載,但僅此而已...是因為我主要使用div來布局,而這對于Gmail或其他東西(相對于表格)來說太新了嗎?
就CSS和其他內容而言,查看原始源代碼會顯示以下內容:
<html><head><style>body { background-color: #F2F2F2; font-family: Arial; color: #5C5C5C; font-size: 11pt; } a { color: #46AAFF; text-decoration: none; } #container { width: 750px; margin-right: auto; margin-left: auto; } #header { float: right; padding: 3px; height: 30px; } #header a { color: #666666; margin-right: 10px; } #mainBody { padding: 20px; background-color: #FFF; border: 1px solid #DADADA; border-radius: 3px; } #imageArea { border-top: solid #E8E8E8 1px; margin: 15px; } #singleImageArea { width: 250px; padding: 15px; } #singleImageArea p { float: right; line-height: 30px; width: 130px; margin-top: 20px; } #footer { padding: 10px; color: gray; } #footer p { text-shadow: 0px 2px #FFF; font-size: 10pt; } #footer a { color: #ADADAD; float: right; padding-left: 20px; padding-right: 20px; } #footer img { width: 35px; height: 23px; padding: 10px; float: left; } </style></head><body><div id="container"><div id="header"><a >Login</a></d
iv><div style="clear: both;"></div><div id="mainBody"><h1>Hi Josh Holat!</h1>You've sent a request to <strong>reset</strong> your appname password. Just click the link below <em>(or copy and paste it into your browser)</em> and follow the instructions to set a new password. The link will expire in one hour.<br/><br/><a >http://appname.local/sb/reset-password/?r=2768af61698fcde9c04f9449351575d6bfe6d720</a><br/><br/>If you feel this request was submitted in error, don't worry; you can safely ignore this e-mail and your password will not be changed.<br/><br/>Much Love,<br/>Us</div><!-- #mainBody --><div id="footer"><img src="http://appname.local/images/email/footer_sb.png" /><p>© 2011 appname, Inc. All Rights Reserved <a >Legal</a><a >Contact</a><a href="http://s
tagebloc.local/sb/developers/">Developers</a><a >Blog</a></p></div><!-- #footer --></div><!-- #container --></body></html>
以及:
Delivered-To: appname@gmail.com
Received: by 10.229.40.2 with SMTP id i2cs133298qce;
Sun, 28 Aug 2011 14:29:08 -0700 (PDT)
Received: by 10.42.152.199 with SMTP id j7mr4419937icw.417.1314566947950;
Sun, 28 Aug 2011 14:29:07 -0700 (PDT)
Return-Path: <_www@joshholat.local>
Received: from joshholat.local (arh2281.urh.uiuc.edu [130.126.70.193])
by mx.google.com with ESMTP id w3si6800550icz.109.2011.08.28.14.29.06;
Sun, 28 Aug 2011 14:29:06 -0700 (PDT)
Received-SPF: neutral (google.com: 130.126.70.193 is neither permitted nor denied by best guess record for domain of _www@joshholat.local) client-ip=130.126.70.193;
Authentication-Results: mx.google.com; spf=neutral (google.com: 130.126.70.193 is neither permitted nor denied by best guess record for domain of _www@joshholat.local) smtp.mail=_www@joshholat.local
Received: by joshholat.local (Postfix, from userid 70)
id 775063662E01; Sun, 28 Aug 2011 16:29:06 -0500 (CDT)
To: Josh Holat <appname@gmail.com>
Subject: Password Reset Request
X-PHP-Originating-Script: 501:Email.php
From: appname <noreply@appname.com>
Content-type: text/html
Message-Id: <20110828212906.775063662E01@joshholat.local>
Date: Sun, 28 Aug 2011 16:29:06 -0500 (CDT)
我很困惑,為什么第三方客戶端可以很好地顯示它,而Gmail只是忽略它?
我正在更新我的答案,因為它有相當多的觀點,并且新的工具是可用的。我把我最初的回答留給后人。
編輯* 2019年9月19日
您可以在此處找到電子郵件客戶端支持的CSS屬性: https://www.caniemail.com/
原答案:
Gmail不支持& ltstyle & gt標簽。您需要使用內嵌css才能使gmail正常工作。
這里有一個參考列表。 http://www.campaignmonitor.com/css/
GMail不支持& ltstyle & gt標簽,許多客戶也不知道。為了讓你的生活更容易,你可以使用convert來轉換你的樣式標簽為內聯CSS:https://templates.mailchimp.com/resources/inline-css/
以上回答都挺好的,只是想再補充幾點。此鏈接的所有積分:
Gmail僅支持& ltstyle & gt在& lthead & gt。Gmail支持嵌入式風格(& ltstyle & gt).但是,嵌入樣式僅在HTML文檔的頭部受支持。Gmail Android和iOS應用程序不支持& ltstyle & gt當呈現通過非谷歌賬戶(GANGA)檢索的電子郵件時。
Gmail會刪除您的整個& ltstyle & gt如果遇到錯誤,則阻止。
Gmail不允許負的CSS邊距值。
Gmail不支持屬性選擇器和大多數偽類。例如div[class = & quot;內容& quot]{顏色:紅色}。Gmail也不支持偽類,如:checked和:active。
編輯:在3年后的回顧中,Gmail CSS相當怪異。
這有點晚了,但我在將郵件SMTP從Outlook更改為Gmail后也遇到了同樣的問題。 由于Gmail不再支持Style標簽,該電子郵件沒有采用默認的模板格式。 以下解決方案對我有效:
將默認的電子郵件模板代碼復制到下的電子郵件模板文件夾中。詹金斯目錄。復制模板的鏈接:https://github.com/jenkinsci/ email-ext-plugin/blob/master/src/main/resources/Hudson/plugins/email ext/templates/groovy-html . template
將樣式標記的屬性從 STYLE to STYLE type = & quottext/CSS & quot;data-inline = & quot;true & quot 保存模板并在工作中使用。
完成了。對我很有效。
我看到你用了一個名為#footer的ID。 好像Google在處理郵件的時候不認可那個名字。 請注意,在gmail的字體代碼中,除了#footer之外,您的所有ID都可能顯示為“exc”+idName。 請嘗試使用不同的名稱。
為此,請從瀏覽器中清除瀏覽數據,然后加載gmail。它仍然會顯示html內容。在同一頁面上進行硬刷新。
Mac: Command+Shift+R Windows: Control+Shift+R