Spring實(shí)現(xiàn)郵件發(fā)送功能
前言:以前都是直接用Java自帶的郵件工具發(fā)送郵件,現(xiàn)在Spring幫我們做了封裝,提供了更好用更簡(jiǎn)單的發(fā)送郵件工具JavaMailSender,關(guān)于郵件服務(wù)器的設(shè)置就不在這里說(shuō)了,直接去QQ郵箱設(shè)置下就好,下面看下主要的步驟:
步驟一、添加發(fā)送郵件相關(guān)Maven依賴
<!-- Spring 郵件發(fā)送 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
步驟二、添加相關(guān)Spring配置,創(chuàng)建一個(gè)spring-mail.xml(如果是Spring-Boot請(qǐng)無(wú)視),內(nèi)容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd ">
<!-- Spring JavaMailSender -->
<bean class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.qq.com"></property>
<!-- 或許你可以用465端口,默認(rèn)的25不適合 -->
<property name="port" value="587"/>
<property name="protocol" value="smtp"/>
<property name="username" value="******@qq.com"></property>
<!-- 這里的是你在QQ郵箱發(fā)送開通SMTP短信后,獲取的授權(quán)碼 -->
<property name="password" value="******"></property>
<property name="defaultEncoding" value="UTF-8"/>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.timeout">25000</prop>
</props>
</property>
</bean>
</beans>
步驟三、創(chuàng)建具體的郵件發(fā)送工具類
/**
* 基于Spring的JavaMailSender的郵件發(fā)送工具類
* @author simon
*
*/
@Component
public class EmailSender {
@Autowired
private JavaMailSender javaMailSender;
private static EmailSender emailSender;
@PostConstruct
public void init() {
emailSender = this;
emailSender.javaMailSender= this.javaMailSender;
}
/**
* 發(fā)送簡(jiǎn)單的文本郵件
* @param sendTo 收件人組
* @param subject 主題
* @param content 文本內(nèi)容
*/
public static void sendSimpleMessage(String sendFrom, String[] sendTo, String subject, String textcontent) {
SimpleMailMessage mail = new SimpleMailMessage();
mail.setFrom(sendFrom);
mail.setTo(sendTo);
mail.setSubject(subject);
mail.setText(textcontent);
//發(fā)送
emailSender.javaMailSender.send(mail);
}
/**
* 發(fā)送HTML內(nèi)容格式的郵件
* @param sendFrom
* @param sendTo 收件人組
* @param subject 主題
* @param htmlContent HTML內(nèi)容
* @throws Exception
*/
public static void sendHtmlMessage(String sendFrom, String[] sendTo, String subject, String htmlContent) throws Exception {
MimeMessage mimeMessage = emailSender.javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage);
mimeMessageHelper.setFrom(sendFrom);
mimeMessageHelper.setTo(sendTo);
mimeMessageHelper.setSubject(subject);
// true 表示啟動(dòng)HTML格式的郵件
mimeMessageHelper.setText(htmlContent, true);
// 發(fā)送郵件
emailSender.javaMailSender.send(mimeMessage);
}
}
步驟四、創(chuàng)建單元測(cè)試測(cè)試發(fā)送郵件
/**
* 郵件發(fā)送測(cè)試類
*
* @author simon
*
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class EmailSenderTest {
@Test
public void testSend() throws Exception {
String sendFrom = "1317492210@qq.com";
String[] sendTo = {"zhaosheng@hitencent.com"};
String subject = "Spring自帶JavaMailSender發(fā)送的HTML郵件";
StringBuilder htmlContent = new StringBuilder()
.append("<html>")
.append("<head>")
.append("<title>")
.append("Spring自帶JavaMailSender發(fā)送的HTML郵件")
.append("</title>")
.append("</head>")
.append("<body>")
.append("您好!陌生人<p/>")
.append("</body>")
.append("</html>");
EmailSender.sendHtmlMessage(sendFrom, sendTo, subject, htmlContent.toString());
System.out.println("郵件發(fā)送成功.");
}
OK,到這里全部的步驟就結(jié)束了,是不是比Java Mail簡(jiǎn)單方便很多哉,趕緊自己動(dòng)手試試吧!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Spring學(xué)習(xí)筆記3之消息隊(duì)列(rabbitmq)發(fā)送郵件功能
- Java的Spring框架中實(shí)現(xiàn)發(fā)送郵件功能的核心代碼示例
- springMVC發(fā)送郵件的簡(jiǎn)單實(shí)現(xiàn)
- Spring Boot實(shí)戰(zhàn)之發(fā)送郵件示例代碼
- Spring Boot中利用JavaMailSender發(fā)送郵件的方法示例(附源碼)
- spring mail借助qq郵箱服務(wù)器發(fā)送郵件
- Spring+quartz實(shí)現(xiàn)定時(shí)發(fā)送郵件功能實(shí)例
- Spring Boot實(shí)現(xiàn)郵件發(fā)送功能
- 使用spring實(shí)現(xiàn)郵件的發(fā)送實(shí)例(含測(cè)試,源碼,注釋)
- spring+maven實(shí)現(xiàn)郵件發(fā)送
相關(guān)文章
mybatisplus解除分頁(yè)限制的實(shí)現(xiàn)
這篇文章主要介紹了mybatisplus解除分頁(yè)限制的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
解決spring boot網(wǎng)關(guān)gateway導(dǎo)致的坑,無(wú)法下載文件問(wèn)題
這篇文章主要介紹了解決spring boot網(wǎng)關(guān)gateway導(dǎo)致的坑,無(wú)法下載文件的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07

