欢迎来到天天文库
浏览记录
ID:6131505
大小:242.00 KB
页数:11页
时间:2018-01-04
《邮件系统图片内嵌》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、邮件系统优化文档整理学习目的:提高自身能力,增强解决问题的能力,养成独立思考的习惯学习内容:学习邮件系统开发的基础知识并对现有的一个邮件系统优化,实现邮件发送图片时将图片资源内嵌到邮件内容中去学习过程:一、熟悉邮件系统的基础知识,了解邮件传输协议(SMTP协议、POP3协议等)(1)SMTP(SimpleMailTransferProtocol,简单邮件传输协议)定义了邮件客户端软件与SMTP服务器之间以及两台SMTP服务器之间的通信规则。SMTP协议的通信双方采用一问一答的命令/响应形式进行对话。(2)POP
2、3协议定义了邮件客户端程序与POP3服务器进行通信的具体规则和细节。用户要从邮件服务器提供商提供的电子邮箱来获取自己的电子邮件,需要通过邮件服务提供商的POP3邮件服务器来帮助完成。二、了解电子邮件的工作原理(假设lyk@sina.com向lhl@163.com发送邮件)(1)lyk@sina.com的邮件客户端程序与对应的SMTP服务器建立网络连接,并以其用户名和密码登录后使用SMTP协议把邮件发送到sina的SMTP服务器(2)Sina的SMTP服务器收到lyk@sina.com提交的电子邮件后,首先根据收
3、件人的得知后缀判断接收者的邮件地址是否属于该SMTP服务器的管辖范围,如果是就直接把邮件存储到收件人的邮箱中,否则sina的SMTP服务器想DNS服务器查询收件人的邮件地址后缀所表示的域名的MX记录,与163的SMTP服务器建立连接并采用SMTP协议吧邮件发送给163的SMTP服务器。(1)163的SMTP服务器收到sina的SMTP服务器发来的电子邮件后,也将根据收件人的地址判断该邮件是否属于该SMTP服务器的管辖范围,如果是就直接把邮件存储到收件人的邮箱中,否则163的SMTP服务器可能继续转发这封电子邮件
4、,也可能丢弃这封电子邮件。(2)用户lhl@163.com通过邮件客户端与163的POP3/IMAP服务器建立网络连接,登录后就可以通过POP3或IMAP协议瞎看邮箱中是否有新邮件。如果有,则用POP3或IMAP协议读取邮箱中的邮件。一、创建HTML格式的邮件在发送邮件的过程中可能会发送图片,但是由于java自带的编辑器是纯文本框,无法插入图片,所以需要创建HTML格式的邮件。邮件正文用HTML文本表示时,可以使用HTML文件的特性来丰富邮件正文,加入一些图片和声音等。二、包含内嵌图片的复杂邮件如上所说,创建H
5、TML格式的邮件能够添加图片等,在html页面中直接嵌入图片数据通常是在html页面中应用图片的链接,如:但是,这样的前提是我们需要将图片先上传到指定的网站,然后获取外链。一方面略麻烦,最主要的是存储图片的网站是否持续的支持外链引用。所以,将图片直接插入到html页面中。如其中base64逗号之后的就是将图片经过base64编码后的数据。三、如何实现图片的嵌入实
6、现邮件正文中图片的嵌入,其实就是从邮件的html文件中将图片的绝对URL解析出来再用base64编码,将所得编码以上诉的形式替换原来的img标签的src属性值操作过程1.由前面的学习可知实现邮件正文的图片嵌入,需要以形式插入图片。其中要将图片进行base64编码,base64方法如下:importsun.misc.BASE64Decoder;import
7、sun.misc.BASE64Encoder;publicstaticStringGetImageStr(){//将图片文件转化为字节数组字符串,并对其进行Base64编码处理StringimgFile="111.jpg";//待处理的图片//Filef=newFile(imgFile);f.length()FileInputStreamin=null;byte[]data=null;FileChannelfc=null;//读取图片字节数组try{in=newFileInputStream(imgFile);
8、fc=in.getChannel();data=newbyte[(int)fc.size()];//[in.available()];in.read(data);in.close();}catch(IOExceptione){e.printStackTrace();}//对字节数组Base64编码BASE64Encoderencoder=newBASE64Encoder();retur
此文档下载收益归作者所有