使用.Net.Mail类发送电子邮件后,图像在电子邮件中不可见

时间:2012-08-08 09:16:18

标签: c# .net vb.net email

我需要将HTML内容作为电子邮件发送,如果HTML中有任何图片,请在电子邮件中显示uo。

我无法将图像附加到邮件中 图像将位于HTML中,我从CMS获取

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

您是否将图片添加为关联资源?以下是如何执行此操作的示例:http://www.codeproject.com/Articles/34467/Sending-Email-Using-Embedded-Images

using System.Net.Mail;

string htmlBody = "<html><body><h1>Picture</h1><br><img src=\"cid:Pic1\"></body></html>";
AlternateView avHtml = AlternateView.CreateAlternateViewFromString
    (htmlBody, null, MediaTypeNames.Text.Html);

// Create a LinkedResource object for each embedded image
LinkedResource pic1 = new LinkedResource("pic.jpg", MediaTypeNames.Image.Jpeg);
pic1.ContentId = "Pic1";
avHtml.LinkedResources.Add(pic1);


// Add the alternate views instead of using MailMessage.Body
MailMessage m = new MailMessage();
m.AlternateViews.Add(avHtml);

// Address and send the message
m.From = new MailAddress("rizwan@dotnetplayer.com", "Rizwan Qureshi");
m.To.Add(new MailAddress("shayan@dotnetplayer.com", "Shayan Qureshi"));
m.Subject = "A picture using alternate views";
SmtpClient client = new SmtpClient("smtp.dotnetplayer.com");
client.Send(m);

答案 1 :(得分:0)

在所有无法附加图片的HTML电子邮件中,所有图片都必须放在服务器中,并在HTML中以完整路径引用,例如“http://www.yourdomain.com/images/imagename.ext”。套管很重要,它是图像不出现的最常见原因。