網上很多關於JMail發送郵件的例子都沒有寫如何發附件,或者沒有寫清如何發內嵌的附件(比如把附件圖片嵌入到HTML信件裡面)
其實最關鍵的就是這句要注釋掉
'JMail.ContentType = "text/html"
(為什麼要發內嵌的附件圖片?因為如果是img src=網上的地址,在outlook等用戶端內則顯示是難看的“X”,需要手動下載圖片)
本例子參考了Dimac(w3JMail官方)的範例,檔案地址:
C:\Program Files\Dimac\w3JMail4\Examples\ASP\htmlimage.asp
(安裝了Jmail的都有)
例子代碼:
<%
Set JMail = Server.CreateObject("JMail.Message")
'是否將信頭編碼成iso-8859-1字元集. 預設是True
JMail.ISOEncodeHeaders = True
'如果JMail.silent設定為true,ErrorCode包含的是錯誤碼
JMail.Silent = True
'設定標題和內容編碼,如果標題有中文,必須設定編碼為gb2312
JMail.Charset = "gb2312"
'JMail.ContentType = "text/html" '如果發內嵌附件一定要注釋掉這行,重要!
JMail.From = "web@mail.skyhe.com" ' 寄件者地址
JMail.FromName = "Skyhe System" ' 寄件者姓名
JMail.MailServerUserName = "web" ' 身分識別驗證的使用者名稱
JMail.MailServerPassword = "123456" ' 身分識別驗證的密碼
'加入新的收件者
JMail.AddRecipient "kittow@mail.skyhe.com", "Mr.Example"
'JMail.AddRecipientBCC Email '密件收件者的地址
'JMail.AddRecipientCC Email '郵件抄送者的地址
JMail.Subject = "圖片測試!!!"
JMail.Body = "A nice picture if you can read HTML-mail."
'增加一個普通附件
JMail.AddAttachment(Server.MapPath("images/email.gif"))
'增加一個嵌入式附件
' The return value of AddAttachment is used as a
' reference to the image in the HTMLBody.
'contentId = JMail.AddAttachment(Server.MapPath("images/email.gif"))
Dim contentId
contentId = JMail.AddAttachment("E:\images\email.gif")
'只有HTML格式支援內嵌圖片附件,我們採用HTML格式的郵件內容
' As only HTML formatted emails can contain inline images
' we use HTMLBody and appendHTML
JMail.HTMLBody = "<html><body><font color=""red"">Hi, here is a nice picture:</font><br>"
JMail.appendHTML "<img src=""cid:" & contentId & """>"
JMail.appendHTML "<br><br> good one huh?</body></html>"
'如果對方信箱不支援HTML格式郵件,我們仍需要給他一個友善的提示
' But as not all mailreaders are capable of showing HTML emails
' we will also add a standard text body
JMail.Body = "Too bad you can't read HTML-mail."
JMail.appendText " There would have been a nice picture for you"
JMail.Send( "mail.skyhe.com" )
JMail.Close()
Set JMail = Nothing
%>