WordPress發送郵件的函數是wp_mail(),默認以純文本(text/plain)格式發送,通過wp_mail()提供的filter函數可以更改為以HTML格式發送,也可以通過制定wp_mail()的第四個參數$headers改變發送郵件的行為。
方法一,用filter發送HTML郵件
發郵件用的函數是wp_mail(),wp_mail()則基于強大的郵件類phpMailer,所以發送HTML格式是小菜一碟。只是WordPress默認以純文本格式發送郵件,我們收到的重設密碼、評論提醒、用戶注冊等郵件都是純文本格式的。
要發送HTML格式,wp_mail()給我們提供了一個filter可以改變content-type,在主題的functions.php或插件中寫如下代碼即可
| add_filter('wp_mail_content_type',create_function('', 'return "text/html";')); |
這樣做會導致所有郵件都以html格式發送,那些本來用純文本發送的郵件可能會變得慘不忍睹(例如重設密碼、用戶注冊等郵件),所以可以只在滿足某些條件時使用HTML格式發送,其它時候還是用默認的,這樣代碼變成下面這樣
| add_filter('wp_mail_content_type', 'sola520_use_html'); function sola520_use_html( $content_type ) { if( '你的條件' ) return 'text/html'; else return $content_type; } |
方法二,用$headers實現
只要在header中指定content-type為text/html,wp_mail()就會用html格式發送郵件。
| $headers = "MIME-Version: 1.0\n" . "Content-Type: text/html;"; wp_mail(該郵件地址已受到反垃圾郵件插件保護。要顯示它需要在瀏覽器中啟用 JavaScript。', 'The subject', '<p>The <em>HTML</em> message</p>', $headers); |
這樣不用擔心影響其它郵件,更省事了,適合發送自定義郵件。





