java学习-mail应用

文章目录

邮件服务器按通讯协议可以划分为两种类型:
SMTP服务器 (发送邮件)
POP3/IMAP服务器 (接收)

使用JavaMail发送一封简单的邮件:
创建包含邮件服务器的网络连接信息的Session对象。
创建代表邮件内容的Message对象。
创建Transport对象、连接服务器、发送Message、关闭连接。

MIME的组合关系

MIME的组合关系

代码展示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Properties p=new Properties();
p.put("mail.transport.protocol", "smtp");
p.put("mail.smtp.auth", "true"); //密码验证
p.put("mail.smtp.host","localhost" ); //主机
p.put("mail.smtp.port", 25); //端口号
p.put("mail.debug", "true");//调试模式

简单的邮件
Session mailsession=Session.getDefaultInstance(p); //获取邮件会话
MimeMessage message=new MimeMessage(mailsession);//邮件体对象
message.setFrom(new InternetAddress("[email protected]")); //发件人
message.setRecipient(RecipientType.TO, new InternetAddress("[email protected]")); //收件人
message.setSubject("正文"); //设置标题
message.setSentDate(new Date()); //设置日期
message.setText("你好,man;欢迎来到即刻 "); //设置文本
message.setContent("<a href='www.baidu.com'>百度</a>","text/html;charset=utf-8");
message.saveChanges(); //保存邮件

创建一个多功能的邮件
MimeMultipart related=new MimeMultipart("related");
MimeBodyPart content=new MimeBodyPart();
MimeBodyPart resource=new MimeBodyPart();
String path=App_1SendMail.class.getResource("1.jpg").getPath(); //图片放于java文件下面,在包内
DataSource ds=new FileDataSource(new File(path));
DataHandler handler=new DataHandler(ds);
resource.setDataHandler(handler);
resource.setContentID("1.jpg");
content.setContent("<img src='cid:1.jpg'/>"," text/html;charset=utf-8");
related.addBodyPart(resource);
related.addBodyPart(content);
message.setContent(related);
message.saveChanges(); // 保存邮件(可选)

带图片和附近的邮件
MimeMultipart mut=new MimeMultipart("mixed");
MimeBodyPart left=new MimeBodyPart();
MimeBodyPart right=new MimeBodyPart();
MimeMultipart related=new MimeMultipart("related");
//左侧
MimeBodyPart content=new MimeBodyPart(); //文本
MimeBodyPart resource=new MimeBodyPart(); //资源
String path=this.getClass().getResource("1.jpg").getPath();
DataSource ds=new FileDataSource(new File(path));
DataHandler handler=new DataHandler(ds);
resource.setDataHandler(handler);
resource.setContentID("1.jpg");
content.setContent("<img src='cid:1.jpg'>","text/html;charset=utf-8");
related.addBodyPart(content);
related.addBodyPart(resource);
left.setContent(related);
//右侧
String attr_path = this.getClass().getResource("a.docx").getPath();
DataSource attr_ds = new FileDataSource(new File(attr_path));
DataHandler attr_handler = new DataHandler(attr_ds);
right.setDataHandler(attr_handler);
right.setFileName("a.docx");
// 设置到总邮件块
mut.addBodyPart(left);
mut.addBodyPart(right);
message.setContent(mut);




//发送
Transport tr=mailsession.getTransport();
tr.connect("zhangsan", "12345678"); //发件人的用户名和密码
tr.sendMessage(message, message.getAllRecipients());
tr.close();