2013-07-02 38 views
2

我有一個Django驅動的WebApp,偶爾需要發送漂亮的HTML郵件給我的用戶。我應該在Django中發送HTML電子郵件時刪除所有CSS嗎?

我在學習如何使用Django發送HTML郵件。這裏是我遵循的指示。他們很簡單,很好:http://www.djangofoo.com/250/sending-html-email

按照這些說明,我可以發送HTML電子郵件。但是,我想發送的電子郵件當然應該共享我的webApp的樣式和外觀。我網站上的每個Django模板在頂部都包含一堆CSS,以確保一致的外觀。但是,當我簡單地將該模板作爲HTML電子郵件發送時,這些樣式不會在電子郵件中顯示。通過Django發送HTML電子郵件時CSS不工作?我是否需要手動並明確地設置我想用於電子郵件的HTML模板中每個元素的字體,顏色,粗體,斜體?其他人如何做到這一點?

回答

0

我想你會發現電子郵件客戶端不會檢索到CSS。

相反,在您的電子郵件,把你的CSS文件的內容直接進入電子郵件,<style></style>周圍。

2

CSS非常難以正確使用html電子郵件......一般規則是使用內聯樣式並儘量保持基本。

這個SO question有一些很好的資源在它的設計html電子郵件的指導。

2

而不是手動設置電子郵件中的所有樣式,我傾向於使用相同的CSS樣式作爲網站,如果我想要的電子郵件應該是漂亮的。但是,電子郵件需要嵌入的樣式,爲此,我使用inlinestyler模塊,該模塊將發送HTML和CSS文件,並在發送電子郵件之前設置相關樣式。

還有一些事情需要考慮,如果你不小心收到巨大的電子郵件,因爲你在任何地方都使用大風格的設置,並且許多電子郵件客戶端不會正確定位等,所以你可能必須爲自定義CSS樣式無論如何你的電子郵件。但即使你這樣做,inlinestyler也是有用的,因爲你可以通過CSS和HTML分開獲得更多可維護的電子郵件。

1

CSS受某些電子郵件客戶端支持,並且不受其他人支持。有些客戶端支持內聯樣式,其他客戶端則不支持。 You can see a fairly verbose list here。大部分可以用HTML/CSS完成的工作都可以使用內聯樣式和(gasp)表格佈局來完成,但其中一些是不可能的。像提到的@Lennart這樣的工具是非常寶貴的,但「只是內聯一切」並不適用於許多問題。 (假想類作爲一個主要觀點(a:懸停由Outlook支持,而.classname:hover不在),背景圖像(there is a hack to make that work though))也是如此。

我想我的基本觀點是,你可以嘗試通過使用inlinestyler或類似的方法來縮短過程,但你需要保留一組單獨的文件,而且你一定會做一系列手動調整。

相關問題