利用springframework+javax.mail发邮件(普通邮件、带附件邮件、HTML格式邮件)
Spring提供了发送电子邮件的支持,可以发送普通邮件、带附件邮件、HTML格式邮件,甚至还可以使用Velocity模板定制化邮件内容。
一、引入相关的库
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( "邮件发送成功" ); } } |
利用springframework+javax.mail发邮件(普通邮件、带附件邮件、HTML格式邮件)的更多相关文章
- javax.mail用smtp服务器发送带附件的邮件
jar包: javax.mail-1.5.5.jar maven配置: <dependency> <groupId>com.sun.mail</groupId> & ...
- spring boot 邮件发送(带附件)
首先开启QQ邮箱的POP.SMTP服务器,获取授权码. 设置-->账户-->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 pom.xml需要加载三个ja ...
- Java使用javax.mail.jar发送邮件并同意发送附件
因为Java在开发网页上占有绝大优势.所以作为web端的领军人物,譬如发送短信和发送邮件这些就成了必定,网络安全一再安全我们须要把账号的安全级别提到更高.因此这些对于开发者也就成了必须掌握的技能!我一 ...
- java 发送简单邮件(不带附件)
引入依赖 邮件实体类 可用邮件服务器地址(网易为例) 邮件工具类 import com.me.beans.Mail; import lombok.extern.slf4j.Slf4j; import ...
- python学习笔记(SMTP邮件发送:带附件)
博主有段时间没有更新博客了 先整理一个之前整理过的SMTP邮件发送,这次是带附件的功能 #!/usr/bin/env python # -*- coding: utf_8 -*- from email ...
- 邮件带附件和html格式
1. 发送有附件的邮件需要添加一个附件类Attachment,这个附件可以为文件和图片: Attachment attach = new Attachment(“文件路径”");//文件 A ...
- 使用System.Net.Mail中的SMTP发送邮件(带附件)
System.Net.Mail 使用简单邮件传输协议SMTP异步发送邮件 想要实现SMTP发送邮件,你需要了解这些类 SmtpClient :使用配置文件设置来初始化 SmtpClient类的新实例. ...
- 1.使用javax.mail, spring的JavaMailSender,springboot发送邮件
一.java发邮件 电子邮件服务器:这些邮件服务器就类似于邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中,按功能划分有两种类型 SMTP邮件服务器:用户替用户发送邮件和接 ...
- python实现邮件发送完整代码(带附件发送方式)
实例一:利用SMTP与EMAIL实现邮件发送,带附件(完整代码) __author__ = 'Administrator'#coding=gb2312 from email.Header import ...
随机推荐
- Activity的onCreate()的PersistableBundle 参数坑。
Bundle 与 PersistableBundle 区别 仅仅是Activity oncreate()的一个参数与两个参数的区别: @Override public void onCreate(Bu ...
- Windows 常用 CMD 命令行介绍
看下面的链接: http://www.jianshu.com/p/76ff5d16f113
- VR可以用做除游戏外的哪些地方
虚拟现实可以将你传送到平时不敢去的地方, 例如喜马拉雅山顶. 也可以将你带到人类几乎不可能到达的地方, 例如世界上最深处, 马里亚纳海沟.马里亚纳海沟最深处的水压可是达到惊人的110Mpa, 这个高压 ...
- java 22 - 8 多线程之线程生命周期图解
- django复习笔记2:models
关于models,主要想说的是django shell以及生成测试数据的脚本这两部分. 一个models中的类相当于数据库的一张表,先看一个设置了外键的models. from django.db i ...
- HBase简介
HBase简介 HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群. HB ...
- 设置word里的代码格式,使之有底纹的效果
目录 1 实现效果: 1 2 怎么才能在word里实现这样的显示? 1 如何设置word里的代码格式,使之有底纹的效果 2 实现效果: 怎么才能在word里实现这 ...
- javascript: 带分组数据的Table表头排序
如下图: 要求:点击表头排序时,"分组"及"分组明细"的数据层次关系不变 从网上找了一段常规的table排序,改了改,以满足“分组支持”,贴在这里备份 < ...
- (一)GATT Profile和GAP 简介(目前所有的BLE应用都基于GATT,所以也要了解是怎么一回事)-转发
个人大总结:(先后顺序) 1.GAP协议定义多个角色(其中就有中心设备[GATT客户端](唯一)叫主设备||和外围设备[GATT服务端端](多个)也叫从设备). 2.先经过GAP协议,再有GATT协议 ...
- 如何在 apache 中设置缓存有效时间
今天学习了下如何在 apache 中设置缓存时间,记之以备忘. 在 http 报文头中,与缓存时间有关的两个字段是 Expires 以及 Cache-Control 中的 max-age,Expire ...