数据URI是在HTML中嵌入图像和其他二进制数据的标准方法,浏览器支持在Web上有详细记录.(IE8是支持数据URI的IE的第一个版本,每个URI最大为32 KB;其他主流浏览器支持它的时间更长.)
我的问题是关于桌面电子邮件和webmail客户端软件.
在构建HTML电子邮件时,标准做法是将图像作为附件包含在内或将其加载到外部(即跟踪图像).这两个都有缺点(一些客户列出所有这些附加文件,而许多客户正确阻止或要求用户操作以查看外部图像).因此,数据URI看起来是一种很好的方式,但前提是电子邮件阅读器支持它.
那么,是否有人链接到最近支持此功能的研究?或者根本调查过这个?例如,这里是CSS支持的概述.我感兴趣的客户端软件包括:
桌面(包括版本信息):Outlook,Apple Mail,Thunderbird,Evolution,Lotus Notes,AOL,Eudora
Webmail: Gmail,Live/Hotmail,Yahoo!邮件,美国在线
手机: Android,iPhone
我必须在电子邮件签名中包含一些图像(公司徽标等).我使用由相关电子邮件系统生成的嵌入图像(它们通常作为附件发送)和链接图像(需要在收到的电子邮件中显示它们的权限)存在各种各样的问题.
我刚刚看到来自交易所的一些电子邮件,其中包含徽标的base64图像表示,并使用标签进行显示.如果可能的话,我正在寻找一些关于如何在电子邮件签名中执行此操作的信息(如何为一个开始生成徽标的base64版本以及我需要使用哪些代码才能使其工作)?
我尝试过简单的事情,比如
<body>
<span>
<img src=.... >
</span>
</body>
Run Code Online (Sandbox Code Playgroud)
但我得到的是替代文字,所以我显然在这里做错了.
为了避免卸载图像,对于我的内联html邮件,我将所有图像(4个实际图像和6个空间距为间距)编码为base64字符串.工作得很好但是gmail拒绝将这些解码回图像.我做了一些非常广泛的调查但空手而归.
怎么样cid:url?
我正在向我的会员发送电子邮件,看起来Gmail正在阻止我在电子邮件中放置的图片.它们作为基础64编码的字符串嵌入到img标记中.我在网上查看了多个关于Gmail不发送图片但没有找到任何有用的内容的主题.以下是我到目前为止尝试过的一些事情.1.在Gmail中启用外部图像(通过设置图标)2.将图像的大小减小到8000字节以下(Outlook.com不会发送图像~15000字节)
如果我发送到outlook.com电子邮件地址,我会收到图片,但在Gmail中,img标签的src为空,电子邮件中没有图片显示.我正在使用https://putsmail.com来测试/发送我的电子邮件,所以我知道问题不是SendGrid(我的电子邮件发送服务)或我的应用程序的问题.
这是我下面的模板之一.我正在使用来自litmuss的电子邮件模板.下面的所有内容基本上都是默认的,除了我添加的额外信息,如图片和电子邮件正文中的一些额外文字.
这是一个带有图像数据的完整模板的jsfiddle,可以直接复制到putsmail中并发送给测试!任何关于Gmail不发送图片的帮助或信息都会很棒!
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<style type="text/css">
/* FONTS */
@@media screen {
@@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 400;
src: local('Lato Regular'), local('Lato-Regular'), url(https://fonts.gstatic.com/s/lato/v11/qIIYRU-oROkIk8vfvxw6QvesZW2xOQ-xsNqO47m55DA.woff) format('woff');
}
@@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 700;
src: local('Lato Bold'), local('Lato-Bold'), url(https://fonts.gstatic.com/s/lato/v11/qdgUG4U09HnJwhYI-uK18wLUuEpTyoUstqEm5AMlJo4.woff) format('woff');
}
@@font-face {
font-family: 'Lato';
font-style: italic;
font-weight: 400;
src: local('Lato Italic'), local('Lato-Italic'), url(https://fonts.gstatic.com/s/lato/v11/RYyZNoeFgb0l7W3Vu1aSWOvvDin1pK8aKteLpeZ5c0A.woff) format('woff'); …Run Code Online (Sandbox Code Playgroud)我有一个嵌入式HTML电子邮件,我正在使用base64编码图像.通过chrome访问时,图像不会显示在Gmail中.但通过邮件客户端(Mac上的Mail应用程序)访问相同的邮件时,它可以正常工作.我已正确设置标题.任何的想法?
我的代码
<html>
<body>Hi
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAREAAAALCAYAAABYrrnHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABANpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjVEMjA4OTI0OTNCRkRCMTE5MTRBODU5MEQzMTUwOEM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjVGMjU1MzZBQUVGQjExRTc5NUQyQTc1MzA0RERGMTVGIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjVGMjU1MzY5QUVGQjExRTc5NUQyQTc1MzA0RERGMTVGIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIElsbHVzdHJhdG9yIENDIDIwMTcgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0idXVpZDpiNDQ5NzVjYy00YmI1LTRmNzAtODRiZi0zMGU2NjFkYmY3ZDMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ZDc1MTVmZDQtMjkzZS00ZWI5LWFiMjQtOTMzYzRkZjNmOTY4Ii8+IDxkYzp0aXRsZT4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+bXRrYV9hY3RpdmF0aW9uX2NhcmQ8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pr6AOtYAAABESURBVHja7NZBDQAwCARB2tS/m6qoKIoGvswkGNjHhQgAAACAeVbdkwHoOnVXBqD9iWSmCkDblgAwIoARAYwIMNAXYACy9wSMWMVdzAAAAABJRU5ErkJggg==" width="273" height="11" alt="">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
头
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Run Code Online (Sandbox Code Playgroud) 我将从Properties.Resources中的图像嵌入到MailMessage中时遇到了一些困难,目前图像未显示在我收到的电子邮件中.
我已经成功地从目录位置嵌入了图像,但是如果图像来自内存/应用程序则更喜欢.
这是我正在做的简化版本.
Bitmap b = new Bitmap(Properties.Resources.companyLogo);
MemoryStream logo = new MemoryStream();
b.Save(logo, ImageFormat.Jpeg);
MailMessage newEmail = new MailMessage(from, to);
newEmail.Subject = subject;
newEmail.IsBodyHtml = true;
LinkedResource footerImg = new LinkedResource(logo, "image/jpeg");
footerImg.ContentId = "companyLogo";
AlternateView foot= AlternateView.CreateAlternateViewFromString(body + "<p> <img src=cid:companyLogo /> </p>", null, "text/html");
foot.LinkedResources.Add(footerImg);
newEmail.AlternateViews.Add(foot);
SmtpClient server = new SmtpClient(host, port);
server.Send(newEmail);
Run Code Online (Sandbox Code Playgroud) 我创建了一个base64图像,通过电子邮件发送给移动设备上的客户.它在电子邮件应用程序中工作,但gmail应用程序显示丢失的图像
这只是谷歌邮件阻止数据图像的安全吗?也没有显示图像的按钮
码:
$headers = "From: info@mydomain.com\r\n";
$headers .= "Reply-To: info@mydomain.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$imagedata = file_get_contents("http://www.barcodesinc.com/generator/image.php? code=12345&style=68&type=C128B&width=180&height=70&xres=1&font=1");
$base64 = base64_encode($imagedata);
$message ="<img src='data:image/png;base64,$base64'>";
mail($to,$subject,$message,$headers);</pre>
Run Code Online (Sandbox Code Playgroud) email ×6
html ×5
base64 ×4
gmail ×3
html-email ×2
image ×2
c# ×1
data-uri ×1
email-client ×1
stream ×1