为什么c#mail要在体内发送图片(签名)?

时间:2012-06-28 09:02:15

标签: c# sendmail image

我想在邮件正文中发送带有图片的邮件。在我的第一次尝试中,图片看起来像一个附件:它是可见的,但最后。我需要将图片放在电子邮件正文的中心。

我使用的教程是link

我的代码如下所示:

    mail.Body = "string htmlBody = \"<html><body><h1><center><img src=\"C:\\picture.png\"/></h1></html>";
    string contentID = "image1";
    Attachment inline = new Attachment("C:\\picture.png");
    inline.ContentDisposition.Inline = true;
    inline.ContentDisposition.DispositionType = DispositionTypeNames.Inline;
    inline.ContentId = contentID;
    inline.ContentType.MediaType = "image/png";
    inline.ContentType.Name = "C:\\picture.png";
    mail.Attachments.Add(inline);
    mail.IsBodyHtml = true;

1 个答案:

答案 0 :(得分:1)

如果您真的关注过本教程,那么您已经看过这段代码:

email.Body = "[...]<img src=\"@@IMAGE@@\" alt=\"\">";

// generate the contentID string using the datetime
string contentID = Path.GetFileName(attachmentPath).Replace(".", "");

Attachment inline
[...]
inline.ContentId = contentID;
[...]
email.Attachments.Add(inline);

// replace the tag with the correct content ID
email.Body = email.Body.Replace("@@IMAGE@@", "cid:" + contentID);

当然使用<img src="C:\picture.png">是行不通的,因为接收邮件的用户很可能不会在他们的PC上的那条路径中拥有该图像,更不用说当他们使用网络邮件时。