将图像嵌入电子邮件

时间:2011-08-19 07:41:03

标签: c# asp.net email internet-explorer-8 gmail

我创建了一个C#Webform程序,用于在我的网页上向客户发送提醒电子邮件。

它在Outlook中运行良好。在FireFox上的Gmail中。

我刚刚发现(我不使用IE)在IE 8中的gmail中它不显示图像?

它只有一个X和alt文本。

我无法弄清楚为什么IE 8和gmail不会显示图像,而且我已经玩了一下。

在C#中

LinkedResource emo2 = new LinkedResource(logoPath);
emo2.ContentId = "logo";
emo2.TransferEncoding = System.Net.Mime.TransferEncoding.Base64;
htmlView.LinkedResources.Add(emo2);

并在我的HTML文件中:

<img id="header" alt="MyWebpage" src="cid:logo" />

通过电子邮件发送简讯对所有不同的客户来说都是令人沮丧的。但我从没想过Gmail会成为我的问题!

4 个答案:

答案 0 :(得分:3)

我们有类似的要求将图像嵌入到HTML电子邮件中,而不是链接到我们网站上托管的图像。主要区别在于用户无需在其电子邮件客户端中单击“显示所有图像”,即电子邮件应立即呈现给收件人。

我们创建了嵌入式图像,它在Outlook和其他一些电子邮件客户端中运行良好,但我们发现有些电子邮件客户端不喜欢它们,因为您已经注意到了gmail。经过几天的研究和尝试不同的事情,我们得出结论,没有灵丹妙药使您的电子邮件正确显示它在所有主要电子邮件客户端中的嵌入图像。

我们安排并在我们的网站上托管了这些图片(这意味着用户获得了“显示所有图片”按钮...),并使用了类似的内容:

<img src="http://website/image.jpg"/>

如果你有耐心,你可以为所有电子邮件地址嵌入图像,除了某些地址(例如@ gmail.com),但我的偏好是一致性,因此只是链接到图像。

答案 1 :(得分:0)

尝试将此添加到LinkedResource的末尾:

logoPath, MediaTypeNames.Image.Jpeg);

假设您的徽标当然是JPG! 还有,是htmlView和AlternateView吗?

答案 2 :(得分:0)

答案很晚但我打赌你嵌入的jpg不是RBG jpg,可能是CMYK。

答案 3 :(得分:0)

我通过查看现有的带有嵌入式图像的电子邮件来解决问题。显然,IE对于需要显示的内容非常挑剔。即使我正在添加内容类型

var imgContentType = new ContentType(MediaTypeNames.Image.Jpeg);

它没有出现在IE中。然后我查看了现有的电子邮件,其中的图像具有内容类型&#34; image / png;名称=&#34; image1.png&#34 ;.将名称添加到内容类型后,图像就会显示出来。我猜IE需要图像扩展才能知道如何处理图像src

相关问题