生活随笔
收集整理的這篇文章主要介紹了
C# 发送邮件内容嵌入图片
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們在發送郵件時,一般圖片都是用網絡路徑,但有時如果接收方不可直接訪問外網,就不能看到圖片了,比如公司內部郵件,跟外界就沒法交流圖片。
那么我們就來把圖片嵌入郵件中;查看人就沒有限制了。
1。以linked的方式,此方式在郵件中不會出現圖片的附件
?
?
郵件內容調用圖片格式為:<img src=\"cid:Email001\">
發送郵件的服務端代碼為:
SmtpClient 發送郵件的對象
?
折疊 C# 代碼 System.Net.Mail.MailMessage?mailMessage?=?new?System.Net.Mail.MailMessage();??? ?? mailMessage.From="發送者郵箱";??? ?? mailMessage.To.Add("收件人郵件列表");??? ?? mailMessage.CC.Add("抄送人郵件列表");??? ?? mailMessage.Subject?=?subject;??? ?? AlternateView?htmlBody?=?AlternateView.CreateAlternateViewFromString(content,null,"text/html");??? ?? LinkedResource?lrImage?=?new?LinkedResource("a.jpg","image/gif");??? ?? lrImage.ContentId?=?"Email001";??? ?? htmlBody.LinkedResources.Add(lrImage);??? ?? mailMessage.AlternateViews.Add(htmlBody);??? ?? SmtpClient.Send(mailMessage);?????
例程:
折疊 C# 代碼 ??????????? SmtpClient?smtp?=?new?SmtpClient(); ?? ????????????smtp.DeliveryMethod?=?SmtpDeliveryMethod.Network; ?? ????????????smtp.Host?=?"smtp.163.com"; ?? ????????????smtp.Credentials?=?new?NetworkCredential("renzhijie1111",?"**"); ?? ?? ????????????MailMessage?mm?=?new?MailMessage(); ?? ????????????mm.From?=?new?MailAddress("test@163.com",?"test"); ?? ????????????mm.To.Add("test2@163.com"); ?? ?? ????????????mm.Subject?=?"測試圖片郵件"; ?? ?? ????????????string?plainTextBody?=?"如果你郵件客戶端不支持HTML格式,或者你切換到“普通文本”視圖,將看到此內容"; ?? ????????????mm.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(plainTextBody,?null,?"text/plain")); ?? ?? ?????????????? ????????????string?htmlBodyContent?=?"如果你的看到<b>這個</b>,?說明你是在以?<span?style=\"color:red\">HTML</span>?格式查看郵件<br><br>"; ?? ????????????htmlBodyContent?+=?"<a?href=\"http://www.fenbi360.net粉筆編程網</a>?<img?src=\"cid:weblogo\">";???//注意此處嵌入的圖片資源 ?? ????????????AlternateView?htmlBody?=?AlternateView.CreateAlternateViewFromString(htmlBodyContent,?null,?"text/html"); ?? ?? ??????????? ?? ????????????LinkedResource?lrImage?=?new?LinkedResource(@"d:\1.jpg",?"image/gif"); ?? ????????????lrImage.ContentId?=?"weblogo";??? ????????????htmlBody.LinkedResources.Add(lrImage); ?? ?? ????????????mm.AlternateViews.Add(htmlBody); ?? ?? ?????????????? ????????????mm.Headers.Add("Disposition-Notification-To",?"test@163.com"); ?? ?? ?????????????? ????????????mm.Headers.Add("X-Website",?"http://www.fenbi360.net"); ?? ?? ?????????????? ????????????mm.Headers.Add("ReturnReceipt",?"1"); ?? ?? ????????????mm.Priority?=?MailPriority.Normal;??? ????????????mm.ReplyTo?=?new?MailAddress("test2@163.com",?"我自己"); ?? ?? ?????????????? ????????????mm.DeliveryNotificationOptions?=?DeliveryNotificationOptions.OnFailure; ?? ?? ?????????????? ????????????smtp.SendCompleted?+=?new?SendCompletedEventHandler(smtp_SendCompleted); ?? ?? ?????????????? ????????????smtp.SendAsync(mm,?null); ?? ?? ?? ?? ?? ?? void?smtp_SendCompleted(object?sender,?AsyncCompletedEventArgs?e) ?? ????????{ ?? ????????????if?(e.Cancelled) ?? ????????????{ ?? ????????????????MessageBox.Show("發送被取消"); ?? ????????????} ?? ????????????else?? ????????????{ ?? ????????????????if?(e.Error?==?null) ?? ????????????????{ ?? ????????????????????MessageBox.Show("發送成功"); ?? ????????????????} ?? ????????????????else?? ????????????????{ ?? ????????????????????MessageBox.Show("發送失敗:?"?+?e.Error.Message); ?? ????????????????} ?? ????????????} ?? ????????} ??
2。以郵件附件的方式,此方式圖片當附件發送,并會顯示在郵件內容中。
如圖:
?
其它代碼就不多貼了。跟上面一樣。只是換成附件方式:
折疊 C# 代碼 string?htmlBodyContent?=?"如果你的看到<b>這個</b>,?說明你是在以?<span?style=\"color:red\">HTML</span>?格式查看郵件<br><br>";??? ?? htmlBodyContent?+=?"<a?href=\"testimg\"></a>?<img?src=\"cid:webimg\">";????? ?????? ?? System.Net.Mail.Attachment?att?=?new?Attachment(@"E:\ttt.gif");??? ?? att.ContentId?=?"webimg"; ? ?? 轉自:http://www.cnblogs.com/Areas/archive/2011/09/23/2186605.html 還看到一個相對簡單的代碼:http://www.reader8.cn/jiaocheng/20130723/1587883.html
總結
以上是生活随笔為你收集整理的C# 发送邮件内容嵌入图片的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。