通过SmtpClient发送的电子邮件不显示图像

时间:2011-07-09 14:26:08

标签: c# image smtpclient

以下代码生成一封电子邮件,该图片通过gmail等网络邮件客户端可见,但通过thunderbird或Outlook客户端无法看到。在这些客户端中可以看到断开的链接,由于某种原因,它不会提示我加载图像。当从另一个客户端转发相同的电子邮件时,它会提示我加载图像,一切都按预期运行。

 class Program 
{
    static void Main(string[] args)
    {
        var mesg = new MailMessage("destination@somewhere.com","from@somewhere.com");
        mesg.Body = "<img src='http://localhost/images/bangs.JPG' />";
        mesg.Subject = "Image Spike Test";
        mesg.IsBodyHtml = true;
        var client = new SmtpClient("localhost");
        client.Send(mesg);

    }
}

以下是此代码生成的电子邮件来源。

MIME-Version: 1.0
From: destination@somewhere.com
To: from@somewhere.come
Date: 9 Jul 2011 09:25:08 -0500
Subject: Image Spike Test
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

<img src=3D'http://localhost/images/bangs.JPG' />

1 个答案:

答案 0 :(得分:0)

好吧,如果您发送这样的邮件,您的电子邮件阅读器必须转到register.cwh.com询问图像。这将告诉register.cwh.com何时以及从何处阅读电子邮件。 Outlook和其他电子邮件客户端可保护您的隐私,但不会检索图像。我很有点担心GMail会加载它们。

正确的解决方法是将图像作为附件发送。 Outlook将显示附件中的图像。