将图像嵌入电子邮件

问题描述:

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

它在Outlook中正常工作。和FireFox上的Gmail。

我刚刚发现(我不使用IE浏览器),在IE 8在Gmail中不显示图像?

它只是一个X和ALT文本。

我无法弄清楚为什么IE 8和Gmail不会dispaly图像和我与它起到了一点。

在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会成为我的问题!

+0

生成的MIME结构是什么样的? – tripleee

尝试增加这LinkedResource结束:

logoPath, MediaTypeNames.Image.Jpeg); 

假设您的标志当然是一个JPG! 另外,是htmlView和AlternateView?

+0

yes htmlview是一个备用视图...其实一个PNG,但生病尝试,谢谢! (最糟糕的情况会转换为JPG格式) – michael

+0

我把它转换成JPG格式,但它仍然显示为与IE的Gmail中的X :( – michael

+0

哦,这是一个耻辱;这是你之前发布的代码和一些代码之间的唯一区别我们用于生产。 –

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

我们创建了嵌入式图像和它在Outlook和其他一些电子邮件客户端伟大的工作,但我们发现,一些电子邮件客户端不喜欢他们,因为你已经与Gmail注意到。经过几天的研究和尝试不同的事情,我们得出结论,没有银弹让您的电子邮件正确地显示它是所有主要电子邮件客户端中的嵌入式图像。

我们结算,托管只是我们网站上的图像(这意味着用户获得了“显示所有图像”按钮......),并使用类似:

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

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

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

我通过观察与正在对IE嵌入图像现有的电子邮件想通了这个问题。显然IE对需要显示的内容非常挑剔。即使我正在添加内容类型

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

它没有出现在IE中。然后我看了看现有的电子邮件,其中的图像的内容类型为“image/png; name =”image1.png“,一旦我将该名称添加到内容类型中,图像就开始显示。图像扩展名,以知道如何处理图像src