1. 程式人生 > 實用技巧 >如何寫一個郵件模板頁面

如何寫一個郵件模板頁面

Email 郵件模板

帶格式的郵件,其實就是一張網頁,正式名稱叫做HTML Email。它能否正常顯示,完全取決於郵件客戶端。
大多數的郵件客戶端(比如Outlook和Gmail),會過濾HTML設定,讓郵件面目全非。
編寫HTML Email的竅門,就是使用20年前的網頁製作方法。下面就是我整理的編寫指南。

1. Doctype

  • 目前,相容性最好的Doctype是XHTML 1.0 Strict,事實上Gmail和Hotmail會刪掉你的Doctype,換上這個Doctype。
  • 使用這個Doctype,也就意味著,不能使用HTML5的語法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

 <head>

  

  <title>HTML Email編寫指南</title>

  

 </head>

</html>

2. 佈局

  • 網頁的佈局(layout)必須使用表格(table)。首先,放置一個最外層的大表格,用來設定背景。
  • 表格的 border 屬性等於1, 是為了方便開發。正式釋出的時候,再把這個屬性設為0。
  • 在內層,放置第二個表格。用來展示內容。第二個table的寬度定為600畫素,防止超過客戶端的顯示寬度。
  • 一般寬度在600px 或者 700px 左右
  • 郵件內容有幾個部分,就設定幾行(row)。
    只能使用 table 佈局

    <table align="center" border="1" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;">

     <tr>
      <td> Row 1 </td>
     </tr>

     <tr>
      <td> Row 2 </td>
     </tr>

     <tr>
      <td> Row 3 </td>
     </tr>

    </table>

3. 圖片

  • 圖片是唯一可以引用的外部資源。其他的外部資源,比如樣式表文件、字型檔案、視訊檔案等,一概不能引用。
  • 有些客戶端會給圖片連結加上邊框,要去除邊框。
  • 需要注意的是,不少客戶端預設不顯示圖片(比如Gmail),所以要確保即使沒有圖片,主要內容也能被閱讀。
  • 圖片可以轉換成 base64 放在頁面中
img {outline:none; text-decoration:none; -ms-interpolation-mode: bicubic;}
a img {border:none;}
<img border="0" style="display:block;">

4. 行內樣式

  • 所有的CSS規則,最好都採用行內樣式。因為放置在網頁頭部的樣式,很可能會被客戶端刪除
  • 不要採用CSS的簡寫形式,有些客戶端不支援 不同客戶端支援情況請看這裡 https://www.campaignmonitor.com/css/
  • 能有標籤自帶的屬性就不要去寫 style
      如果想表達
      <p style="margin: 1em 0;">
      要寫成下面這樣:
      <p style="margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0;">
    
    

例子:

<table border="0" cellpadding="0" cellspacing="0" width="730" style="margin-left: auto;margin-right: auto; border-collapse: collapse;font-family:'微軟正黑體',Helvetica,Arial,sans-serif">
    <tbody>
        <tr>
            <td style="padding-top:10px;">
                    <!-- 1、收款單資訊頭部  -->
                    <table border="0" cellpadding="0" cellspacing="0" style="width:100%;line-height:1.3;border-bottom: 1px solid #404040;font-family:'微軟正黑體',Helvetica,Arial,sans-serif">
                        <tbody style="width:100%;">
                            <tr style="text-align: right;font-size:14px;">
                                <td colspan="4">
                                    <p style="margin:0px;text-align: right;font-size:18px;color:#00a1e9;"> 旅客必須取得印花收據,方可獲得『旅遊業賠償基金』保障 </p>
                                    <p style="margin:0px;text-align:right;">  Travellers must obtain receipts with levy stamps to have </p>
                                    <p style="margin:0px;text-align:right;">  protection by the Travel Industry Compensation Fund. </p>
                                </td>
                            </tr>
                            <tr>
                                <td colspan="4">
                                    <img style="border:none" src="" alt="">
                                </td>
                            </tr>

                            <tr style="font-size:14px;">
                                <td colspan="4" style="padding-bottom:20px; text-align: right;color:#89898a;border-bottom: 1px solid #404040;">
                                    <span> ☐ 客人存本  </span> 
                                    <span> ☐ 分行存本 </span> 
                                    <span> ☐ 財務存本 </span> 
                                </td>
                            </tr>
                            <tr>
                                <td colspan="4" style="padding-top:10px;padding-bottom: 10px;font-weight: bold;font-size: 18px;"> 
                                    付款人   <span class="pl5"> 李冰 </span>
                                </td>
                            </tr>

                            <tr style="line-height:32px;width:100%;">
                                <td colspan="4" height="35px" style="width:100%;background-color:#606060;">
                                    <span style="font-size:18px;font-weight: bold;color:#fff;padding-top: 5px;padding-bottom: 5px;padding-left: 5px;"> 收款單資訊 </span> 
                                </td>
                            </tr>
                            <tr style="font-size:14px;border-bottom: 1px solid #404040;">
                                <td width="25%;" height="35px" style="font-weight: bold;"> 收款編號 </td>
                                <td width="25%;" height="35px"> H00000076 </td>
                                <td width="25%;" height="35px" style="font-weight: bold;"> 總社查詢熱線 </td>
                                <td width="25%;" height="35px" > 2108 8888 </td>
                            </tr>
                            
                        </tbody>
                    </table>
                </td>
        </tr>
        <tr>
            <td> 第二部分內容 <td>
        </tr>
        ......
        <tr>
            <td> 第N部分內容 <td>
        </tr>
        .......
   </tbody>
</table>