[VBNET] 在 HTML 郵件內加入樣式庫

話說我想把網頁輸出內容直接寄出去,因為用了一些圖片及樣式,懶得把樣式抽出來內嵌,所以我打算把樣式直接加入到郵件內。
註:樣式內嵌在非微軟設計的郵件軟體上可能無法正常支援顯示
程式碼:

VB2008

Dim mailClient As New System.Net.Mail.SmtpClient(“msa.hinet.net", 25)

Dim mailMessage As New System.Net.Mail.MailMessage

Dim atFile As System.Net.Mail.Attachment

 

With mailMessage

    

     .IsBodyHtml = True

     .Body = “<html><head><link href=’cid:list.css’ rel=’STYLESHEET’ type=’text/css’ /></head><body><p>Hello Html Mail</p><p><img src=’cid:fidi.png’ /></p></body></html>"

End With

 

Dim arrBytes() As Byte = StringToBytes(“p {“ & vbNewLine & “color: green;" & vbNewLine & “}", enuStandardCodePages.SCP_big5)

Dim ms As New IO.MemoryStream(arrBytes)

 

atFile = New System.Net.Mail.Attachment(ms, “text/css")

atFile.ContentId = “list.css"

mailMessage.Attachments.Add(atFile)

 

atFile = New System.Net.Mail.Attachment(“d:\Temp\ftdidriver.png", “image/png")

atFile.ContentDisposition.FileName = “fidi.png"

mailMessage.Attachments.Add(atFile)

 

mailClient.Send(mailMessage)

 

收到的信件:

參考文件:http://social.msdn.microsoft.com/Forums/en-US/netfxnetcom/thread/c65502fa-955e-4fa1-b409-238bbb677df7

Categories: 技術分享 | 2 則迴響

文章導覽

2 thoughts on “[VBNET] 在 HTML 郵件內加入樣式庫

  1. 通告: 請問如何利用VB 把郵件直接傳送出去(有附檔) 請給範例 謝謝 | Hello, Visual Basic program…

  2. 有人跟我抱怨這個範例不夠詳細,我的習慣是盡量把範例精簡,這個範例包含
    1. HTML 內容從字串產生
    2. CSS 轉成 MemoryStream 加入附件
    3. 從硬碟讀取附加檔並變更在 eMail 內的檔名

    說實在的,我是覺得滿完整的,而且也考慮到不同情況都簡單的做成範例。

    裡面是有個進階的沒介紹,就是當郵件軟體只允許純文字郵件時會怎樣。這部分細節請先看 RFC 關於 MIME 的介紹與說明,大部分信件軟體其實會自動處理,當然可能碰上舊版或是希望純文字郵件與 HTML 郵件內容稍微不同,比如說純文字郵件改提供連結讓使用者可以快速點選,這邊大概說一下。

    1. 不使用 HtmlBody 。
    a. 純文字郵件放在 .Body。
    b. .Body 為空或一行的提醒,例如 這是一封 MIME 郵件。純文字郵件加入為第一附件。
    2. HTML 郵件放在第二附件。
    3. 加入樣式、圖片為附件。(此部分同上)

    其中 1a、1b 可能因為瀏覽器或是 eMail 軟體不同而產生支援度不同的情形,標準應為 1a ,但是 Outlook / Live Mail 都是用 1b ,所以使用上見仁見智。

    喜歡

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

在 WordPress.com 建立免費網站或網誌.

%d 位部落客按了讚: