1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

ASP采用Jmail发送普通附件和嵌入附件(参考w3JMail官方例程)

本帖由 Brosnan2005-11-22 发布。版面名称:后端开发

  1. Brosnan

    Brosnan New Member

    注册:
    2005-09-03
    帖子:
    1,032
    赞:
    9
    呼,总算搞定了,花了好几天时间啊>_<
    网上很多关于JMail发送邮件的例子都没有写如何发附件,或者没有写清如何发内嵌的附件(比如把附件图片嵌入到HTML信件里面)
    郁闷到极的时候终于“柳暗花明”,噢yeah~~!!!
    其实最关键的就是这句要注释掉
    'JMail.ContentType = "text/html"

    (为什么要发内嵌的附件图片?因为如果是img src=网上的地址,在outlook等客户端内则显示是难看的“X”,需要手动下载图片)

    本例子参考了Dimac(w3JMail官方)的样例,文件地址:
    C:\Program Files\Dimac\w3JMail4\Examples\ASP\htmlimage.asp
    (安装了Jmail的都有)

    例子代码:
    <%
    '*************************************************
    '* *
    '* Produced by Skyhe.Com *
    '* *
    '* Code Written by Kittow at 2005-11 *
    '* http://www.skyhe.com *
    '* Mail:kittow_AT_263.net *
    '* *
    '* *
    '*************************************************

    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 = "[email protected]" ' 发送者地址
    JMail.FromName = "Skyhe System" ' 发送者姓名
    JMail.MailServerUserName = "web" ' 身份验证的用户名
    JMail.MailServerPassword = "123456" ' 身份验证的密码
    '加入新的收件人
    JMail.AddRecipient "[email protected]", "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
    %>

    原BLOG地址:
    http://skyhe.com/blog/bloget/home/review.asp?id=497
    有问题请跟贴或者在偶得BLOG留言

    PS:这次主要是赶公司的一个项目临时想到的,Jmail用了几年,都是发普通Html邮件,或者发附件
    突然想到用内嵌图片的方法来解决“X”的问题,没想到还是卡了一下,郁闷>_<
    发出来是希望朋友们遇到类似情况不会再绕弯路,呵呵^_^
    AD一下上半年偶做得公司网站:http://www.twzw.com,目前比较大的一个文学网站“天外中文网”
     
  2. hboyy

    hboyy New Member

    注册:
    2005-11-23
    帖子:
    5
    赞:
    0
    谢谢,我还没考虑到附件的问题呢