Spring實現(xiàn)郵件發(fā)送功能
前言:以前都是直接用Java自帶的郵件工具發(fā)送郵件,現(xiàn)在Spring幫我們做了封裝,提供了更好用更簡單的發(fā)送郵件工具JavaMailSender,關于郵件服務器的設置就不在這里說了,直接去QQ郵箱設置下就好,下面看下主要的步驟:
步驟一、添加發(fā)送郵件相關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>
步驟二、添加相關Spring配置,創(chuàng)建一個spring-mail.xml(如果是Spring-Boot請無視),內(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端口,默認的25不適合 -->
<property name="port" value="587"/>
<property name="protocol" value="smtp"/>
<property name="username" value="******@qq.com"></property>
<!-- 這里的是你在QQ郵箱發(fā)送開通SMTP短信后,獲取的授權碼 -->
<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ā)送簡單的文本郵件
* @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 表示啟動HTML格式的郵件
mimeMessageHelper.setText(htmlContent, true);
// 發(fā)送郵件
emailSender.javaMailSender.send(mimeMessage);
}
}
步驟四、創(chuàng)建單元測試測試發(fā)送郵件
/**
* 郵件發(fā)送測試類
*
* @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,到這里全部的步驟就結束了,是不是比Java Mail簡單方便很多哉,趕緊自己動手試試吧!
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Spring學習筆記3之消息隊列(rabbitmq)發(fā)送郵件功能
- Java的Spring框架中實現(xiàn)發(fā)送郵件功能的核心代碼示例
- springMVC發(fā)送郵件的簡單實現(xiàn)
- Spring Boot實戰(zhàn)之發(fā)送郵件示例代碼
- Spring Boot中利用JavaMailSender發(fā)送郵件的方法示例(附源碼)
- spring mail借助qq郵箱服務器發(fā)送郵件
- Spring+quartz實現(xiàn)定時發(fā)送郵件功能實例
- Spring Boot實現(xiàn)郵件發(fā)送功能
- 使用spring實現(xiàn)郵件的發(fā)送實例(含測試,源碼,注釋)
- spring+maven實現(xiàn)郵件發(fā)送
相關文章
詳解spring boot jpa整合QueryDSL來簡化復雜操作
這篇文章主要介紹了詳解spring boot jpa整合QueryDSL來簡化復雜操作,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04
在IDEA中配置tomcat并創(chuàng)建tomcat項目的圖文教程
這篇文章主要介紹了在IDEA中配置tomcat并創(chuàng)建tomcat項目的圖文教程,需要的朋友可以參考下2020-07-07
springboot serverEndpoint導致@resource注解不生效
在SpringBoot中,@Resource注解用于注入依賴,本文主要介紹了springboot serverEndpoint導致@resource注解不生效,具有一定的參考價值,感興趣的可以了解一下2023-12-12

