如何編寫兼容各主流郵箱的HTML郵件
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
幾乎每個(gè)會(huì)員制網(wǎng)站都需要通過(guò)后臺(tái)發(fā)送郵件來(lái)與會(huì)員進(jìn)行溝通,如注冊(cè)確認(rèn)、營(yíng)銷推廣。這些由站方發(fā)給會(huì)員的信件,往往純文本格式已不能滿足界面和交互的要求,這時(shí)候我們就需要發(fā)送html頁(yè)面。 幾乎每個(gè)會(huì)員制網(wǎng)站都需要通過(guò)后臺(tái)發(fā)送郵件來(lái)與會(huì)員進(jìn)行溝通,如注冊(cè)確認(rèn)、營(yíng)銷推廣。這些由站方發(fā)給會(huì)員的信件,往往純文本格式已不能滿足界面和交互的要求,這時(shí)候我們就需要發(fā)送html頁(yè)面。由于html郵件不是獨(dú)立的host在本站的頁(yè)面,是寄人籬下的。所以編寫html郵件與編寫html頁(yè)面有很大的不同。因?yàn)?,各面向網(wǎng)民的主流郵箱都或多或少的會(huì)對(duì)它們接收到的html郵件在后臺(tái)進(jìn)行過(guò)濾。毫無(wú)疑問(wèn),js代碼是被嚴(yán)格過(guò)濾掉的,包括所有的事件監(jiān)聽屬性,如onclick、onmouseover,這是基于郵件安全性的考慮。不僅如此,css代碼也會(huì)被部分過(guò)濾。本人要講的就是如何編寫不被各大主流郵箱過(guò)濾的,能正常顯示的html郵件。 首先,我們先來(lái)看看郵箱是如何展現(xiàn)html郵件的。我本人沒(méi)有做過(guò)郵件系統(tǒng),況且各大郵箱后臺(tái)的過(guò)濾算法也不是那么容易可以讓外人知道的。所以,我們只能通過(guò)前端展現(xiàn),來(lái)推測(cè)哪些是被郵箱接受的寫法,而哪些又是會(huì)被過(guò)濾掉的。通過(guò)對(duì)gmail、hotmail、163、sohu、sina幾個(gè)郵箱的分析,我把郵箱分為兩類: 第二類,包括163、sina,這類郵箱,郵件內(nèi)容被布局在獨(dú)立的iframe中。如圖: 熟悉html的朋友都知道,iframe內(nèi)容是作為獨(dú)立的document,與父頁(yè)面的元素和css是互不相干的,幾乎可以作為一個(gè)獨(dú)立的頁(yè)面來(lái)對(duì)待。而如果如果郵件內(nèi)容是在div中,那么郵件內(nèi)容是作為整個(gè)郵箱頁(yè)面的一個(gè)組成部分。顯然,以iframe作為展現(xiàn)方式的郵箱,對(duì)郵件內(nèi)容就會(huì)寬容許多,因?yàn)樗o了你一個(gè)足夠獨(dú)立的表現(xiàn)空間。而div就不是那么客氣了。試想一下,如果你在你的郵件里寫上這么一句css,是不是整個(gè)郵箱的展現(xiàn)頁(yè)面上字體都變成20px而因此亂了套: 下面我列出一些編寫原則: |