JavaSE:JavaMail笔记,javasejavamail笔记
分享于 点击 14194 次 点评:282
JavaSE:JavaMail笔记,javasejavamail笔记
一、邮件协议:1.SMTP为邮件传输协议,相应的服务器为邮件发送服务器(SMTP服务器)
SMTP服务器处理邮件发送
2.POP3为邮件接收协议,相应的服务器为邮件接收服务器(POP3服务器)
POP3服务器处理邮件接收
3.协议对应端口
HTTP:80
HTTPS:443
SMTP:25
POP3:110
4.创建邮件的协议
RFC822文档:简单邮件
MIME协议(对RFC822文档的升级和补充,又称MIME邮件,MIME协议描述的数据称为MIME消息,为复杂邮件):
MIME协议常用头字段:
Content-type头字段
数据关系
multipart/mixed,
multipart/related,
multipart/alternative,
Content-Disposition头字段(用于指定邮件阅读程序处理数据内容的方式)
二、通过Telnet手动发送和接收邮件:
1.建一个java类,对用户名与密码进行编码System.out.print("请输入用户名:");
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String userName = in.readLine();
System.out.print("请输入密码:");
String password = in.readLine();
BASE64Encoder encoder = new BASE64Encoder();
System.out.println("编码后的用户名为:" + encoder.encode(userName.getBytes()));
System.out.println("编码后的密码为:" + encoder.encode(password.getBytes()));
2.利用telnet连接smtp.sohu.com服务器发送邮件
打开cmd,输入telnet smtp.sohu.com 25 回车
ehlo 用户名 //随便输入用户名
auth login //登陆标记
输入编码后的用户名 //在网上注册的邮件用户名,用B64编码后的值输
输入编码后的密码 //在网上注册的邮件密码,用B64编码后的值输
mail from:<email邮箱> //要输入该服务器注册的email
rcpt to:<email邮箱> //接收人的真实email
data //输入搞回车后开始写内容
from:<发送者email>
to:<接收者email>
cc:<抄送者email>
bcc:<暗送者email> //不会显示发送人的email
subject:主题
空一行
内容 //这里输入发送的内容
. //说明内容写完了
quit //退出服务器连接
3.利用telnet连接smtp.sohu.com服务器接收邮件
user 用户名 //网上注册的用户名
pass 密码 //网上注册的密码
stat //返回邮箱的统计信息
list //返回某一封邮件的统计信息
retr //最重要的一个命令
quit //退出服务器连接
三、邮件发送程序开发:
(1)自已建java类连接邮件服务器并发送邮件Socket sock = new Socket("smtp.sohu.com",25);
BufferedReader in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
OutputStream out = sock.getOutputStream();
System.out.println(in.readLine());
out.write("ehlo wangwu\r\n".getBytes());
System.out.println(in.readLine());
System.out.println(in.readLine());
System.out.println(in.readLine());
out.write("auth login\r\n".getBytes());
System.out.println(in.readLine());
out.write("编码后的用户名\r\n".getBytes());
System.out.println(in.readLine());
out.write("编码后的密码\r\n".getBytes());
(2)用apache开发的JavaMail_API开发邮件发送程序
1.导包:activation.jar和mail.jar
2.建一个类,用于生成一封带图片的邮件
Session session = Session.getDefaultInstance(new Properties());
MimeMessage message = new MimeMessage(); //MimeMessage类表示整封邮件
message.setFrom(new InternetAddress("aaa@126.com")); //设置
message.setRecipient(Message.RecipientType.TO,new InternetAddress("bbb@126.com"));
message.setSubject("邮件标题");
//正文数据
MimeBodyPart text = new MimeBodyPart(); //MimeBodyPart类表示邮件的一个MIME消息
text.setContent("正文内容<img src='cid:图片ID'>","text/html");
//正文图片
MimeBodyPart image = new MimeBodyPart();
//附件
MimeBodyPart attach = new MimeBodyPart();
DataHandler dh = new DataHandler(new FileDataSource("附件路径"));
attach.setDataHandler(dh);
attach.setFileName();
//将图片和数据处理器相关联
DataHandler dh = new DataHandler(new FileDataSource("图片路径"));
image.setDataHandler(dh);
image.setContentID("该图片ID");
//描述正文文字与正文图片之关的关系
MimeMultipart mm = new MimeMultipart(); //MimeMultipart类表示一个由多个MIME消息组合成的组合MIME消息。
mm.addBodyPart(text);
mm.addBodyPart(image);
mm.setSubType("telated"); //正文图片
mm.setSubType("mixed"); //附件
//把容器加到邮件中
message.setContent(mm);
message.saveChanges();
//看效果
message.writeTo(new FileOutputStream("c:\\1.eml"));
3.发送生成的邮件
四、邮件接收程序开发:
相关文章
- 暂无相关文章
用户点评