【发布时间】:2015-06-24 07:29:15
【问题描述】:
这是一种情况。 我正在发送一封包含图像为 html 正文的电子邮件
<img src="http://www.google.com/images/srpr/logo11w.png" alt="click me" />
收到邮件后图片src改为
<img src="https://bay179.mail.live.com/Handlers/ImageProxy.mvc?bicild=&canary=ei12UmVJE9u9hgMk5TdV12Y1X%2b9Vc365IL%2bmULwd%2bfk%3d0&url=http%3a%2f%2fwww.google.com%2fimages%2fsrpr%2flogo11w.pngf" alt="click me">
因此不渲染图像。以下是用于发送电子邮件的代码
SmtpClient sc = new SmtpClient("smtp.live.com");
sc.Port = 587;
sc.UseDefaultCredentials = false;
sc.Credentials = new NetworkCredential("someemail@hotmail.com", "password");
sc.EnableSsl = true;
MailMessage m = new MailMessage();
m.From = new MailAddress("someemail@hotmail.com");
m.Subject = "test subject";
m.IsBodyHtml = true;
m.Body = "<img src=\"http://www.google.com/images/srpr/logo11w.png\" alt=\"click me\" /><img src=\"https://campaign-uploads.s3.amazonaws.com/newsletter/2015/19Apr_wk17/EN/images/logo.jpg\" />";
m.To.Add(new MailAddress("someemail@hotmail.com"));
sc.Send(m);
第一张图片的 url 被更改,第二张图片的 url 保持不变。那么科学是什么? 我不想嵌入图像。
【问题讨论】:
-
您将需要发布您的代码。在不知道您如何设置图像源的情况下,我们无能为力。
-
这是 Microsoft/Live/Outlook.com 代理图像作为安全预防措施,所以是关于该设施,而不是 C# - IIRC HTTPS 防止这种情况
-
“因此不渲染图像” - 直到用户点击“显示图像”。
-
由于嵌入的网址不正确,点击“显示图片”将不起作用
-
当您说嵌入的 URL 不正确时,您是否希望它只是 google.com 的 URL?或者你的意思是例如ImageProxy URL 中 URI 编码的 google.com URL 上的尾随“f”?还是别的什么?