在C#中附加邮件正文中的图像

pri*_*ore 8 c#

如何在身体内容中附加图像.我写了下面的代码

System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
string UserName = "xyz@someorg.com";
string Password = "my password";
message.To.Add(new System.Net.Mail.MailAddress("toaddress@toadddress.com"));
message.From = new  System.Net.Mail.MailAddress("fromaddress@fromaddress.com");              
message.Subject = "test subject";
message.Body = "<img src=@'C:\\Sunset.jpg'/>";                
message.IsBodyHtml = true;
System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient();
 smtpClient.Host = "hostname";
 smtpClient.Port = 25;
 smtpClient.Credentials = new System.Net.NetworkCredential(UserName, Password);
 smtpClient.Send(message);
Run Code Online (Sandbox Code Playgroud)

代码很好,因为我也收到了消息,但图像在身体内部[X]而不是图像.怎么解决这个?路径是正确的?

Asa*_*sad 16

    string attachmentPath = Environment.CurrentDirectory + @"\test.png";
    Attachment inline = new Attachment(attachmentPath);
    inline.ContentDisposition.Inline = true;
    inline.ContentDisposition.DispositionType = DispositionTypeNames.Inline;
    inline.ContentId = contentID;
    inline.ContentType.MediaType = "image/png";
    inline.ContentType.Name = Path.GetFileName(attachmentPath);

    message.Attachments.Add(inline);
Run Code Online (Sandbox Code Playgroud)

参考:使用内联附件在C#中发送电子邮件

  • 为了将来使用此解决方案的任何人,为了使其工作,我必须在代码中添加以下图像标签(我的ContendId为“屏幕截图”):`message.Body =“ &lt;img src = \” cid :截屏\“ alt = \” \“ /&gt;”;` (3认同)