一、引入相关的库
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
<!-- spring核心库 --> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<!--发送Email-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
二、发送邮件代码
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import org.springframework.core.io.ClassPathResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
public class SpringEmail {
private JavaMailSenderImpl mailSender=null;
//邮件用户名
private String userName="";
//发送邮箱名称
private String from="@163.com";
//接收邮箱名称
private String to="@qq.com";
public SpringEmail()
{
this.mailSender = new JavaMailSenderImpl();
//邮箱smtp服务器
mailSender.setHost("smtp.163.com");
mailSender.setPort(25);
mailSender.setUsername(this.userName);
//邮箱密码
mailSender.setPassword("xxxx");
}
//普通文本Email
public void sendPureMail() {
SimpleMailMessage message = new SimpleMailMessage();
String spitterName = "这里是标题(纯文本)";
message.setFrom(this.from);
message.setTo(this.to);
message.setSubject("这里是标题!");
message.setText("这里是内容");
this.mailSender.send(message);
}
//带多个附件的Email
public void sendMailWithAttachment() throws MessagingException {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(this.from);
helper.setTo(this.to);
helper.setSubject("这里是标题(带多个附件)!");
helper.setText("这里是内容(带附件)");
//添加两个附件(附件位置位于java-->resources目录),可根据需要添加或修改
ClassPathResource image = new ClassPathResource("/coupon.jpg");
ClassPathResource PDF = new ClassPathResource("/Rop Reference.pdf");
helper.addAttachment("Coupon.png", image);
helper.addAttachment("Rop Reference.pdf", PDF);
this.mailSender.send(message);
}
//带附件的HTML格式的Email
public void sendMailHtmlWithAttachment() throws MessagingException {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true,"GBK"); //解决乱码问题
helper.setFrom(this.from);
helper.setTo(this.to);
helper.setSubject("这里是标题(Html带附件)!");
//设置META解决乱码问题
helper.setText("<html><META http-equiv=Content-Type content='text/html; charset=GBK'><body><img src='cid:Coupon'>" +
"<h4>" + "测试乱码" + " says...</h4>" +
"<i>" + "测试乱码2" + "</i>" +
"</body></html>", true);
//图片嵌入到html文件中
ClassPathResource couponImage = new ClassPathResource("/coupon.jpg");
helper.addInline("Coupon", couponImage);
//图片作为附件发送
ClassPathResource couponImage2 = new ClassPathResource("/coupon.jpg");
helper.addAttachment("Coupon.png", couponImage2);
this.mailSender.send(message);
}
public static void main(String[] args) throws MessagingException{
System.out.println("开始发送邮件");
SpringEmail email=new SpringEmail();
//email.sendPureMail();
//email.sendMailWithAttachment();
email.sendMailHtmlWithAttachment();
System.out.println("邮件发送成功");
}
}