利用Jmail傳送帶附件的郵件時亂碼的解決方案

iDotNetSpace發表於2009-11-06

今天在利用Jmail傳送帶附件的郵件時,一直收不到附件,而是得到一些“亂碼”如下:This is a multipart message in MIME format. ----NEXT_BM_AEB3968967D044DC9E208D04088C60B4 Content-Type: text/html; charset="GB2312" Content-Transfer-Encoding: Quoted-Printable sdfdd ----NEXT_BM_AEB3968967D044DC9E208D04088C60B4 Content-Type: application/octet-stream; name="=?GB2312?Q?12d95384-576f-424f-bf15-f8e2397e2791=2EJPG?=" Content-Transfer-Encoding: base64 Content-Description: =?GB2312?Q?12d95384-576f-424f-bf15-f8e2397e2791=2EJPG?= Content-Disposition: inline; filename="=?GB2312?Q?12d95384-576f-424f-bf15-f8e2397e2791=2EJPG?=" Content-ID: <180B140729C34A5696C14ABD11C827A1> /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsL  ....

       很顯示是被編碼過了,因此馬上網上百度谷歌一下,首先找到了新增附件的幾種方法:

1. AddAttachment(FileName, isInline, ContentType) : String為郵件新增一個檔案型的附件。如果Inline 屬性被設定為true,這個附件就是一個可嵌入的附件,使用addAttachment()方法可返回content id,這在傳送HTML 郵件時是非常有用的。例:jmail.AddAttachment("c:\autoexec.bat") jmail.AddAttachment("myImage.gif",TRUE) &&可嵌入的附件
2.AddURLAttachment(bstrURL, bstrAttachAs, isInline, bstrAuth) : String從指定的URL 下載檔案並新增為附件。第二個引數“AttachAs”用來更改新增為附件的檔案的檔名,如果Inline 屬性被設定為true,這個附件就是一個可嵌入的附件,使用ddAttachment()方法可返回content id,這在傳送HTML 郵件時是非常有用的。最後一個引數為可選項,是當伺服器需要身份驗證時使用的。例 jmail.AddURLAttachment("http://download.dimac.net/jmail/w3jmail4.exe","w3jmail4.exe")jmail.AddURLAttachment"http://download.dimac.net/jmail/w3jmail4.exe", "w3jmail4.exe",false, "myUserName:myPassword")jmail.AddURLAttachment"http://images.dimac.net/dimaclogo.gif","dimaclogo.gif",true )

測了一下,好像跟兩個方法沒什麼關係。後來在網上有人說把Message.ContentType ="text/html"設定去掉(就是不要去設定ContentType屬性),試了一下,還真傳送成功了。唉,算不算Jmail的一個Bug了?

好了,現在總結一下:要傳送附件時,不能設定ContentType屬性(ContentType的預設值是text/plain),這時如果要傳送HTML格式的郵件可以通過設定HTMLBody屬性。

希望這個對大家有用。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-618279/,如需轉載,請註明出處,否則將追究法律責任。

相關文章