`
OrangeHolic
  • 浏览: 260894 次
  • 来自: 北京
社区版块
存档分类
最新评论

如何在邮件中嵌入图片,而非上传在附件

阅读更多
现在好的邮件客户端如outlook等支持直接插入图片,接收方阅读时也表现为非附件形式. 但是如果我们用代码实现呢?我们可以用下面2种方式实现
1.可以将图片传到有外链的网站,这个就无需介绍了,如果图片不变化,推荐这种形式。
2.采用base 64编码的方式,在此重点讲讲这种方式。


嵌入图片,可以说这是HTML的知识例了

1.首先需要准备图片,这里有个限制,我们在最后说明。



2.对图片进行base 64编码
这里采用PHP base64_encode 函数进行演示,代码如下:
$content=base64_encode(file_get_contents('F:\test.png'));
file_put_contents('F:\test.txt',$content);

会产生如下的编码:
iVBORw0KGgoAAAANSUhEUgAAAJwAAABPCAIAAACRcDubAAAABmJLR0QA/wD/AP+
gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nN19eZwVxdXoOVXVfb
dZgZlhFcVhWGRRQXbERD9lwAXjlkQNLkTQRDEuSUx8X5bPZ+IOrqAoGo0xGqOIMLjG
BRD3hZ0ZBNlhgFnv1l11zvuju+/cWRncfu+9+t3fTN/u6qo6dersp+pi2I44RiOiVKgwxIqA
HJshVyoyUKvTCYWWEQDAzACQfWGIMLiD/j1ABkSEoGQqAwA33e5UQcTs171mERHIv
4mC/YYRAECw8CpkBuC9TuhfZFrzKjAABtciGDYygGCvayISQkgpAcAYIwUqFEqiABYAEk
EJlChiglgqRmDmkMQ8hblSWmAkE0oLEQ2TJkAphBDEmEzTXkrHmfIxlCOURmPAtRBy
lIxJOwQiTU4SDCuIoAqjBETHaAUYlXYKTA2lbSGLRKRHxM1HPIBid5w1mj55PBiFRZbIwJ
+Nif93SwsoDgndYYGfvVwOd7pav9veUDvfILQzfnG4rbTZffaIv7eSNZ6277f3SseI+eaAZ
LfQ3sy0idGOV17HdTJ9IaJos4/ODPeQT7nV57soLWaw9XVnCOJw6S
..............省略..................

3.编写邮件
我们采用编写HTML源码的形式,因为在代码中实现也只能这种方式了,没有可视化的....
内容:
<BODY style="MARGIN: 10px"><DIV><IMG src="data:image/png;base64,此处加入上面的base64编码"> </IMG></DIV></BODY>
发送后,就会呈现下面的形式:



我们曾提到过图片有个限制,IE8(这边in7的foxmail用)只支持最大32768 Bytes的base64编码,其他如chrome,IE9没有这个限制,而且一般图片转换成base64以后会增大30%,在此给个参考,上面的图片

格式: png
大小: 156 x 79px
原始大小: 14626 Bytes
转换后大小: 19504 Bytes.







  • 大小: 14.3 KB
  • 大小: 25.5 KB
分享到:
评论
1 楼 hexawing 2013-11-15  
Office Outlook 2010貌似不支持这个,会显示成一个叉叉

相关推荐

    php发邮件类smtp发邮件发送文本发送附件和图片全部代码

    `PHPMailer`是一个广泛使用的开源库,它允许我们通过SMTP(Simple Mail Transfer Protocol)协议来发送邮件,并且支持添加附件和嵌入图片。本文将详细介绍如何利用`PHPMailer`类来实现这些功能。 首先,你需要下载`...

    泛微E9获取附件内容,泛微Ecology9获取附件范例,Ecology9附件、E9附件下载,并发送邮件到邮箱JAVA.zip

    如果附件内容在内存中,可以创建一个AlternateView,将附件内容转换为Base64编码的HTML,嵌入到邮件正文中。 最后,使用SmtpClient连接到SMTP服务器,设置必要的属性如SMTP地址、端口、用户名和密码,然后调用Send...

    邮件带附件mail

    3. **添加附件**:在大多数邮件客户端中,添加附件的步骤非常简单。用户只需点击“添加附件”按钮,然后选择本地计算机上的文件进行上传。附件可以是各种类型,包括文档、图片、音频、视频,甚至是压缩文件。 4. **...

    lotus domino附件开发--附件批量放到一个文档

    对于每个附件,我们使用 `ExtractFile` 方法来将其保存到磁盘上,然后使用 `EmbedObject` 方法将其嵌入到新的文档中。 在将所有附件处理完毕后,我们使用 `Save` 方法将新的文档保存到数据库中。整个过程中,我们...

    Bos开发指南_附件管理

    - 介绍了如何在WEB端集成附件管理的功能,可能包括如何在WEB应用中嵌入附件上传、下载、管理等界面和功能。 以上信息可作为开发人员在EAS Bos系统中实现附件管理功能的参考。在进行附件管理的开发工作时,了解这些...

    base64编码(vb6邮件附件)

    在VB6(Visual Basic 6)中,使用Base64编码处理邮件附件是非常常见的一种方法,尤其当需要通过SMTP(简单邮件传输协议)发送包含非纯文本内容的邮件时,如图片、文档或任何其他二进制文件。 Base64编码的核心原理...

    126/163网盘附件上传jsp

    标题中的“126/163网盘附件上传jsp”指的是使用JSP(JavaServer Pages)技术实现的126和163邮箱网盘的附件上传功能。126和163是中国知名的电子邮件服务提供商,它们提供的网盘服务允许用户存储和分享文件。在这一...

    Wireshark协议分析之SMTP.zip

    在这个名为"Wireshark协议分析之SMTP.zip"的压缩文件中,包含了四个*.pcapng数据包,这些数据包记录了SMTP通信的不同阶段,特别是涉及跨域邮件传输和附件上传的场景。 首先,我们来看"mail_sender_client_1.pcapng...

    javamail发送邮件.zip

    在JavaMail应用中,这可能是用来将上传的文件保存到临时位置,以便作为邮件附件。 4. **正文文本与图片**: 邮件的正文可以包含纯文本,也可以包含HTML格式的内容,从而可以嵌入图片。JavaMail API 支持发送HTML...

    jsp邮件收发系统源码项目

    7. **图片代码齐全**:描述中提到的“图片代码齐全”可能指的是项目中包含了用于展示邮件预览或界面元素的图片资源,以及如何在JSP页面中正确引用这些图片的示例代码。 8. **Chapter19**:这个文件名可能代表项目的...

    CRM上传图片 微软的CRM 上传一个图片功能

    5. 上传的图片可以直接在CRM界面上预览,也可以下载到本地,或者嵌入到报告、邮件模板中。 Microsoft Dynamics CRM支持多种方式集成图片,例如通过移动应用拍摄照片即时上传,或者通过API接口批量导入图片。此外,...

    在线邮件系统(ASP.NET)

    在线邮件系统是基于Web的应用程序,它允许用户通过互联网发送、接收和管理电子邮件,而无需在本地计算机上安装专门的邮件客户端。在这个特定的实例中,我们关注的是一个使用ASP.NET构建的在线邮件系统。ASP.NET是...

    邮件收发-完全源码-保证成功运行

    这通常通过MIME(Multipurpose Internet Mail Extensions)标准来实现,将附件转换为Base64编码并嵌入邮件正文中。邮件内容通常分为文本部分和MIME边界定义的多个部分,每个部分可以包含不同的内容类型,如纯文本、...

    利用swfupload仿163邮箱添加附件所有源码 下载即可用

    1. **实时文件大小显示**:在选择文件后,系统会立即显示选定文件的总大小,帮助用户了解上传的文件是否超过邮件附件的限制。 2. **进度条显示**:在文件上传过程中,提供可视化的进度条,让用户清楚地知道文件上传...

    基于jsp的邮件收发系统

    在本系统中,用户可以上传文件作为邮件附件。SmartUpload提供了处理多文件上传、文件大小限制、文件类型检查等功能,确保上传过程的安全性和稳定性。 在实际开发中,除了基本的邮件发送和接收功能,系统可能还包含...

    flash发送图片到PHP并保存

    图片可以作为邮件的附件或嵌入到HTML邮件内容中,需要正确设置MIME类型和编码。 6. **邮件安全与验证**:发送邮件时,需注意安全问题,如验证收件人地址、设置正确的发件人信息,以及遵循SPF、DKIM和DMARC等反垃圾...

    仿QQ邮箱大文件上传组件,带进度条,.net版本

    在.NET开发环境中,实现大文件上传并带有进度条显示的功能是一项常见的需求,特别是在构建Web应用时,用户可能需要上传较大的附件或数据。本项目“仿QQ邮箱大文件上传组件”正是针对这一需求而设计,其核心是利用了...

    popclient.rar

    此外,邮件的主体和附件可能会使用MIME(Multipurpose Internet Mail Extensions)进行编码,使得不同类型的文件(如图片、文档等)能够在邮件中传输。MIME定义了邮件内容的格式,包括类型(如text/plain、image/...

    c++邮件发送demo

    4. 添加附件,如果有的话,需要将文件内容转换为Base64编码,嵌入到邮件正文中。 5. 设置抄送和密送地址,这些信息会被包含在邮件头中。 6. 发送邮件,包括消息体和头信息。 7. 关闭SMTP连接。 在项目中,`mail.sln...

    网页版大附件断点续传控件

    网页版大附件断点续传控件是一种在网页上实现大文件上传功能的关键技术,尤其在互联网服务中,如云存储、邮件系统、社交媒体等,它极大地提升了用户体验。这种控件通常采用Java Applet实现,因为Java具有跨平台性和...

Global site tag (gtag.js) - Google Analytics