在一个后台的Batch程序中要发送带图片的邮件,尝试了附件方式的方法,发现不理想,容易引起安全隐患。
在MSDN和网络上对此也语焉不详,这里我对该方法做一个详细介绍,请看下面咱这个函数,大家可以修改后适合自己的程序:

Private Sub SendRemindMail(ByVal strTo As StringByVal strToName As StringByVal blnSendToLneMgr As Boolean)
        
Dim objMailMessage As New MailMessage
        
Dim objSmtpClient As New SmtpClient
        
Dim objAltView As AlternateView
        
Dim objLnkSrc As LinkedResource
        
Dim sb As New StringBuilder

        
Dim strFrom, strFromName As String

        strFrom 
= ConfigurationManager.AppSettings("Sender")    '读取app.config文件中的配置信息,这个不用多说了吧
        strFromName = ConfigurationManager.AppSettings("SenderName")
        strTo 
= "LazzyTiger@Sohu.com"
        strToName 
= "Lazzy Tiger"

        objMailMessage.From 
= New MailAddress(strFrom, strFromName)
        objMailMessage.To.Add(
New MailAddress(strTo, strToName))
        objMailMessage.Subject 
= "Birthday Greeting"

        
If blnSendToLneMgr = True Then
            sb.Append(
"<P style='FONT-SIZE: 10pt;FONT-FAMILY: Century Gothic,Arial;'>")
            sb.Append(
"Please note that your staff listed below does not have email access.  Kindly ensure that a printed copy of this e-Birthday Card (preferably in colour) reaches your staff within a week's time.")
            sb.Append(
"<BR>&nbsp;-&nbsp;" & strStaffName & "&nbsp;(" & strStaffDeptDescr & ")</P>")
        
End If

        sb.Append(
"<P style='FONT-SIZE: 10pt;FONT-FAMILY: Century Gothic,Arial;'>Dear Colleague,</P>")
        sb.Append(
"<P style='FONT-SIZE: 10pt;FONT-FAMILY: Century Gothic,Arial;'><Img src='cid:Image01'/></P>")
        sb.Append(
"<P style='FONT-SIZE: 10pt;FONT-FAMILY: Century Gothic,Arial;'>Best Wishes,<BR>")
        sb.Append(
"your SingTel family</P>")

        objAltView = AlternateView.CreateAlternateViewFromString(sb.ToString, Encoding.ASCII, "text/html")
        objLnkSrc = New LinkedResource(Application.StartupPath & "/Birthday.jpg", "Image/jpg")
        objLnkSrc.ContentId = "Image01"
        objAltView.LinkedResources.Add(objLnkSrc)
        objMailMessage.AlternateViews.Add(objAltView)

        objSmtpClient.Host 
= ConfigurationManager.AppSettings("SmtpServer")
        objSmtpClient.Send(objMailMessage)
   
End Sub

注意蓝色部分代码,这里是关键,当然你也可以连接嵌入程序里的资源文件,具体的大家自己摸索吧,不难的。
posted on 2008-04-15 14:48  LazzyTiger  阅读(1260)  评论(0编辑  收藏  举报