При отправке электронной почты через SmtpClient изображения не отображаются - PullRequest
2 голосов
/ 09 июля 2011

Следующий код создает сообщение электронной почты, изображение которого видно через клиенты веб-почты, такие как 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 голосов
/ 09 июля 2011

Что ж, если вы отправите такое письмо, вашему читателю электронной почты придется перейти на register.cwh.com, чтобы запросить изображение.Это сообщит register.cwh.com, когда и откуда читалось письмо.Outlook и другие почтовые клиенты защищают вашу конфиденциальность и не получают изображение.Я несколько удивлен, что GMail их загружает.

Надлежащее решение - отправить изображение в виде вложения.Outlook будет отображать изображения из вложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...