SpringBoot傳送郵件
這是博主自己本地記在有道雲的,現在都發出來,希望對你們有幫助哈。
話不多說,直接上程式碼~
一、依賴
<!——
javax
。
——>
<
dependency
>
<
groupId
>
com
。
sun
。
groupId
>
<
artifactId
>
javax
。
artifactId
>
<
version
>
1
。
6
。
0
version
>
dependency
>
二、郵箱配置
。
smtp
。
auth
=
true
。
transport
。
protocol
=
smtp
。
send
。
charset
=
UTF
-
8
。
smtp
。
port
=
465
。
is
。
ssl
=
true
。
host
=
smtp
。
163
。
com
。
auth
。
name
=
xx
@163。com
。
auth
。
password
=
。
smtp
。
timeout
=
5000
三、程式碼
工具類 EmailUtils
package
cn。aduu。utils
;
import
com。sun。mail。util。MailSSLSocketFactory
;
import
org。slf4j。Logger
;
import
org。slf4j。LoggerFactory
;
import
org。springframework。beans。factory。annotation。Autowired
;
import
org。springframework。core。env。Environment
;
import
org。springframework。mail。javamail。JavaMailSenderImpl
;
import
org。springframework。mail。javamail。MimeMessageHelper
;
import
org。springframework。stereotype。Component
;
import
javax。annotation。PostConstruct
;
import
javax。mail。internet。MimeMessage
;
import
java。io。File
;
import
java。security。GeneralSecurityException
;
import
java。util。List
;
import
java。util。Map
;
import
java。util。Properties
;
/**
* @author zh
* @ClassName cn。aduu。utils。EmailUtils
* @Description
*/
@Component
public
class
EmailUtils
{
private
static
final
Logger
logger
=
LoggerFactory
。
getLogger
(
EmailUtils
。
class
);
@Autowired
private
Environment
env
;
private
static
String
auth
;
private
static
String
host
;
private
static
String
protocol
;
private
static
int
port
;
private
static
String
authName
;
private
static
String
password
;
private
static
boolean
isSSL
;
private
static
String
charset
;
private
static
String
timeout
;
@PostConstruct
public
void
initParam
()
{
auth
=
env
。
getProperty
(
“mail。smtp。auth”
);
host
=
env
。
getProperty
(
“mail。host”
);
protocol
=
env
。
getProperty
(
“mail。transport。protocol”
);
port
=
env
。
getProperty
(
“mail。smtp。port”
,
Integer
。
class
);
authName
=
env
。
getProperty
(
“mail。auth。name”
);
password
=
env
。
getProperty
(
“mail。auth。password”
);
charset
=
env
。
getProperty
(
“mail。send。charset”
);
isSSL
=
env
。
getProperty
(
“mail。is。ssl”
,
Boolean
。
class
);
timeout
=
env
。
getProperty
(
“mail。smtp。timeout”
);
}
/**
* 傳送郵件
* @param subject 主題
* @param toUsers 收件人
* @param ccUsers 抄送
* @param content 郵件內容
* @param attachfiles 附件列表 List
*/
public
static
boolean
sendEmail
(
String
subject
,
String
[]
toUsers
,
String
[]
ccUsers
,
String
content
,
List
<
Map
<
String
,
String
>>
attachfiles
)
{
boolean
flag
=
true
;
try
{
JavaMailSenderImpl
javaMailSender
=
new
JavaMailSenderImpl
();
javaMailSender
。
setHost
(
host
);
javaMailSender
。
setUsername
(
authName
);
javaMailSender
。
setPassword
(
password
);
javaMailSender
。
setDefaultEncoding
(
charset
);
javaMailSender
。
setProtocol
(
protocol
);
javaMailSender
。
setPort
(
port
);
Properties
properties
=
new
Properties
();
properties
。
setProperty
(
“mail。smtp。auth”
,
auth
);
properties
。
setProperty
(
“mail。smtp。timeout”
,
timeout
);
if
(
isSSL
){
MailSSLSocketFactory
sf
=
null
;
try
{
sf
=
new
MailSSLSocketFactory
();
sf
。
setTrustAllHosts
(
true
);
properties
。
put
(
“mail。smtp。ssl。enable”
,
“true”
);
properties
。
put
(
“mail。smtp。ssl。socketFactory”
,
sf
);
}
catch
(
GeneralSecurityException
e
)
{
e
。
printStackTrace
();
}
}
javaMailSender
。
setJavaMailProperties
(
properties
);
MimeMessage
mailMessage
=
javaMailSender
。
createMimeMessage
();
MimeMessageHelper
messageHelper
=
new
MimeMessageHelper
(
mailMessage
,
true
);
messageHelper
。
setTo
(
toUsers
);
if
(
ccUsers
!=
null
&&
ccUsers
。
length
>
0
)
{
messageHelper
。
setCc
(
ccUsers
);
}
messageHelper
。
setFrom
(
authName
);
messageHelper
。
setSubject
(
subject
);
messageHelper
。
setText
(
content
,
true
);
if
(
attachfiles
!=
null
&&
attachfiles
。
size
()
>
0
)
{
for
(
Map
<
String
,
String
>
attachfile
:
attachfiles
)
{
String
attachfileName
=
attachfile
。
get
(
“name”
);
File
file
=
new
File
(
attachfile
。
get
(
“file”
));
messageHelper
。
addAttachment
(
attachfileName
,
file
);
}
}
javaMailSender
。
send
(
mailMessage
);
}
catch
(
Exception
e
)
{
logger
。
error
(
“傳送郵件失敗!”
,
e
);
flag
=
false
;
}
return
flag
;
}
}
四、測試
package
cn。aduu。web
;
import
cn。aduu。utils。EmailUtils
;
import
com。fasterxml。jackson。core。JsonProcessingException
;
import
org。slf4j。Logger
;
import
org。slf4j。LoggerFactory
;
import
org。springframework。web。bind。annotation。RequestMapping
;
import
org。springframework。web。bind。annotation。RestController
;
/**
* @author zh
* @ClassName cn。aduu。web。EmailController
* @Description
*/
@RestController
public
class
EmailController
{
private
static
final
Logger
logger
=
LoggerFactory
。
getLogger
(
EmailController
。
class
);
@RequestMapping
(
“sendEmail”
)
public
String
sendEmail
()
throws
JsonProcessingException
{
boolean
isSend
=
EmailUtils
。
sendEmail
(
“這是一封測試郵件”
,
new
String
[]{
“3379218@qq。com”
},
null
,
“
百度一下,你就知道
”,
null
);
return
“傳送郵件:”
+
isSend
;
}
}
PS:如果覺得我的分享不錯,歡迎大家隨手點贊~
原文連結:SpringBoot(十一):SpringBoot傳送郵件 - Saytime - CSDN部落格