读书笔记《Java邮件开发详解》
更新时间:2023-08-05 22:06:01 阅读量: 实用文档 文档下载
- java邮件开发详解推荐度:
- 相关推荐
读书笔记《Java邮件开发详解》
读书笔记《Java邮件开发详解》
DNS
MX
自动回复 不填from 避免循环回复。
Pop3:可以查邮件总数、已占空间。
电子邮件的RFC822格式:
Return-Path:代表邮件的回复地址,该字段的内容由接收邮件的SMTP服务器填写,接收邮件的SMTP服务器从邮件发送程序发出的mail form命令中获得内容。
Received:通常格式是:Received from A by B for C ,A为发送方,B为接收方,C为收件人的邮箱地址。常常被用来追踪邮件传输的路线和分析邮件的来源。 From:
To:
Subject:
Date:
Cc:
Bcc:
邮件的头字段可以扩充成MIME类型。Content-Type: multipart/mixed;头字段指定编码方法。另外,也定义了邮件头字段的内涵。
MIME消息的头字段具体资源的数据类型和组合消息的组合关系,都是通过消息头中的Content-Type头字段来指定的,格式为“主类型/子类型”的形式出现,主类型有text、image、audio、application、multipart、message等;每个主类型下面又都有好多子类型。
MIME消息可以有三种组合关系:
Multipart/mixed 混合组合 内容可以是文本、附件等等。
Multipart/related 关联组合 如邮件正文要使用HTML代码引用内嵌的图片资源。意思是说某些资源要关联引用另外的资源。
Multipart/alternative 选择组合
这三种关系是可以随意嵌套的,比如你寄一个复杂的盒子出去,这个盒子里面可以有好多好多小盒子,而每个盒子都可以看作一个MIME。
其他的头字段都是顾名思义的,略!
设置内容的另一种方法:
setContent(Object object, String type)
setContent(body, “text/html;charset=gb2312”);
读书笔记《Java邮件开发详解》
另外一种客户端的发信方式:SMTP服务器功能的邮件发送程序
具有SMTP服务器功能的邮件发送程序会根据收件人地址的域名,直接连接到该域的SMTP服务器和进行邮件发送。根本用不到
JNDI:命名式:把对象绑定到context中;目录式:保存对象的属性信息 实际应用中命名式和对象式常常结合使用。
Tomcat可以通过配置文件自己创建javax.mail.Session
META-INF/context.xml
<Context>
<Resource name=”mail/session”
auth=”Container”
type=”javax.mail.Session”
mail.smtp.host=”http://www.77cn.com.cn”
mail.transport.protool=”smtp”
mail.smtp.auth=”true” />
</Context>
在web.xml中说明一下,有资源是被tomcat创建的,如果换了别的应用服务器也要创建。
<resource-ref>
<res-ref-name>mail/Session</res-ref-name>
<res-type>javax.mail.Session</res-type>
<res-auth>Container</res-auth>
</resource-ref>
不知道书上为什么费那么大劲找个Session出来,还是个没有校验的Session,收发邮件时都得再写用户名密码给服务器。为什么不随便new一个或者从System中调一个呢?感觉基本用不着,我自己写一个properties文件岂不是更好?
JAF
对于通过JAF封装的数据,应用程序通过JAF提供的接口可以完成如下功能: 。访问数据源中的数据
。获知数据源的数据类型
。获知可对数据源进行的各种操作
。用户对数据源执行某种操作时,自动创建执行该操作的软件部件的实例对象
好像是用来封装数据源的(比如:声音文件,java文件),这样的好处是?可以识别文件类型对文件直接操作?不知道,回头再看看。好像是附件用的,ms。
邮件搜索
用于创建逻辑组合关系的类AND、OR、NOT、Comparison
读书笔记《Java邮件开发详解》
用于创建具体搜索条件的类DATE、CONTENT、HEADER
例:SearchTerm st = new AndTerm(new FromStringTerm(“zx@http://www.77cn.com.cn”),
new ReceivedDateTerm(ComparisonTerm.EQ, new
Date()));
这里主要说明ComparisonTerm类,常用于日期类的比较其中使用留个常量来标识六种不同的操作:EQ(=)、GE(>=)、GT(>)、LE(<=)、LT(<)、NE(!=) 邮件的解析与显示
如果Message的类型是“text/*”直接显示之。如果Message的类型
(getContentType())是“multipart/mixed”,调getContent()方法得到Multipart,对其调getCount()看看其中有多少个BodyPart,遍历之;当MIME类型为“text/*”显示之,当MIME是图片、声音或附件等二进制时,调
getDataHandler方法得到封装数据的对象,然后调其getInputSteam .;当MIME类型为“mutlipart/mixed”再次遍历得到其中的BodyPart。
注意:Message.isMimeType(“multipart/*”)这个方法居然可以写通配附?!看看API的解释:If the subType of mimeType is the special character '*', then the subtype is ignored during the comparison.。
处理内嵌类型的multipart(multipart/related)直接交给IE浏览器去显示就好了:
response.setContentType(”message/rfc822”);
message.writeTo(response.getOutputStream());
总结:
总的来说这本书讲的很基础,前半部分告诉我们什么是email、email是如何收发的及email的格式、着重说明了smtp协议和pop3协议,甚至告诉大家怎么使用协议的命令收发邮件,这些对于使用API做web开发的程序员来说用处不是很大,但第3章邮件的组织结构讲述的还是比较好的;后半部分主要对Javamail进行说明,但是我个人觉得不如IBM的在线教程介绍的实用,主要是例子写的别扭,呵呵。不过里面有一些细节可以起到拓宽知识面的作用。
此书对开发webmail用处不是很大,比如对于pop3协议来说,如何标记邮件,如何建立文件夹,如何移动邮件,甚至通讯录什么的都一点也没有提到,讲邮件搜索的时候没有说邮件过滤能不能通过搜索实现或者还是有更好的办法。更深入一点的比如用工厂模式解耦合、使用线程池提高性能等更是只字未提。哎~看来还得再找找,实在不行就操作数据库,那样麻烦很多但是应该什么都能实现。最近看webmail看的很不爽,网上这样的东西也很少,感觉没有一个套路...郁闷~~
正在阅读:
读书笔记《Java邮件开发详解》08-05
大学生涯自我发展规划报告10-19
2011年组织部工作计划03-08
我的玩具小汽车作文400字07-01
爱国题材小品剧本;大话东方02-09
刚毅木讷02-19
初中英语语法专题(精品讲练结合附答案)05-06
03ERP常见实用物料分类及编码规则09-28
第二章 随机变量及其分布 习题课06-12
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 详解
- 邮件
- 笔记
- 读书
- 开发
- Java