邮件服务器:相当于邮局
电子邮箱:E-mail地址,就是账号,会分配一定的空间
SMTP:发送协议
POP3:接受协议
可使用命令发邮件:
ehlo flx
auth login
aXRjYXN0MTExMQ==
MTIzNDU2
mail from:<itcast1111@sohu.com>
rcpt to:<itcast1111@sina.com>
data
from:<itcast1111@soho.com>
to:<itcast1111@sina.com>
subject:test
(这里需要空行)
aaaaaaaaaaaaaaaaaaaaaaaaa
.
quit
ehlo flx
auth login
aXRjYXN0MTExMQ==
MTIzNDU2
mail from:<itcast1111@sohu.com>
rcpt to:<itcast1111@sina.com>
data
from:<jjs@taiwan.com>(修改这里可以冒充别人发邮件)
to:<itcast1111@sina.com>
bcc:<xxx@sina.com>
subject:人事安排
经国吾儿:
xx同志不错,请安排国防部长一职,此事不用再汇报,直接搞定。
蒋中正
1956.10.9
.
Quit
端口号:
http:80
Smtp:25
Pop3:110
Ftp:23
mime:443
编码:
用SOKET连接发送服务器,开启输入输出流,不断的发送数据和读返回的数据
除了大型网站,一般用不到收邮件(解析数据难)
SMTP协议18条命令,6条有用,用户密码要BASE64编码
RFC822文档和MIME协议:
RFC822是简单文本邮件,
MIME是复杂邮件,通过横线划分不同的数据,通过content-type头,指定数据类型,content-type:multipart/related声明引用关系,让图片在正文中显示,不在以附件显示,给图片加 content-id头,在文本正文中<img src="cid:xxx.jpg"/>
编程:J2EE API
MimeMessage创建复杂邮件,setFrom setTo setSubject
每一部分数据:MimeBodyPart setContent设置数据 setType设置类型
MimeMultipart保存多段数据, addBadyPart 添加到容器 setType设置关系
导入包:mail.jar activation.jar
图片显示在正文中(related)图片以附件显示(mixed,设置数据处理器,会自动感知类型)
最复杂的邮件:正文和图片组成的MimeMultipart用MimeBodyPart封装后,和附件的MimeBodyPart一起加到新的容器中。
中文乱码:正文或附件名可能乱码
正文:setContent中加上charset="UTF-8"
附件:setFileName中加(MimeUtility.encodeText(dh.getName()))
发送邮件:
创建会话session并设置运行环境Properties (参考JAVAmail pdf Enviroment properties),getTransport 拿到Transport对象。Connect连接服务器,sendMessage发送邮件,close关闭连接。
session.setDebug(true)会在控制台打印交互信息
WEB中发邮件,发送最好在多线程中。
服务器给服务器转投电子邮件不用密码,需要在DNS注册A记录
别人能找到该服务器,则需在DNS上注册MX记录。
查找DNS服务器命令:
Nslookup
Set type=mx
Sina.com
网络爬虫:HttpUrlConnection连接到网页,INPUTsTREAM 读取资源,用正则匹配资源,递归。
JNDI让TOMCAT 创建session:参考tomcat文档。(需要拷贝JAR到服务器lib目录中)