在电子邮件中没有嵌入图像
本文关键字:图像 电子邮件 | 更新日期: 2023-09-27 18:12:46
我尝试发送嵌入图像的电子邮件。图片来自List<Bitmap>
,我确信它们100%在那里。
当我收到电子邮件时,我根本看不到任何图像HTML看起来像
<img alt="" hspace="0" src="http://image0" align="baseline" border="0">
<br />
<img alt="" hspace="0" src="http://image1" align="baseline" border="0">
<br />
什么线索吗?
c#就像var smtp = new SmtpClient();
var msg = new MailMessage(new MailAddress("support@mysite.com", "mysite.com Support"),
new MailAddress(email, email));
msg.Subject = "No worries, man";
msg.IsBodyHtml = true;
var bodyBuilder = new StringBuilder();
for (int i = 0; i < pages.Count; i++)
bodyBuilder.AppendLine(string.Format("<img alt='"'" hspace='0' src='cid:image{0}' align='baseline' border='0'><br />",i));
var htmlView = AlternateView.CreateAlternateViewFromString(bodyBuilder.ToString(), null, "text/html");
var index = 0;
foreach (var page in pages) // where page is List<Bitmap>
{
var memoryStream = new MemoryStream();
page.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png);
var imagelink = new LinkedResource(memoryStream, "image/png");
imagelink.ContentId = string.Format("image{0}", index);
imagelink.TransferEncoding = TransferEncoding.Base64;
htmlView.LinkedResources.Add(imagelink);
index++;
}
msg.AlternateViews.Add(htmlView);
try
{
smtp.Send(msg);
return Json("true", JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
logger.Error(ex.Message, ex);
return Json("false", JsonRequestBehavior.AllowGet);
}
ok guys
我在这里找到了很棒的解决方案
如何将图像流嵌入到MailMessage
正确的代码如下:
ImageConverter ic = new ImageConverter();
Byte [] ba = (Byte[]) ic.ConvertTo(page,typeof(Byte[]));
var memoryStream = new MemoryStream(ba);
page.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png);