Spring實(shí)現(xiàn)郵件發(fā)送功能
前言:以前都是直接用Java自帶的郵件工具發(fā)送郵件,現(xiàn)在Spring幫我們做了封裝,提供了更好用更簡(jiǎn)單的發(fā)送郵件工具JavaMailSender,關(guān)于郵件服務(wù)器的設(shè)置就不在這里說了,直接去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)無視),內(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)文章
詳解spring boot jpa整合QueryDSL來簡(jiǎn)化復(fù)雜操作
這篇文章主要介紹了詳解spring boot jpa整合QueryDSL來簡(jiǎn)化復(fù)雜操作,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04Java基于jdbc實(shí)現(xiàn)的增刪改查操作示例
這篇文章主要介紹了Java基于jdbc實(shí)現(xiàn)的增刪改查操作,結(jié)合實(shí)例形式分析了java使用jdbc進(jìn)行數(shù)據(jù)庫(kù)的連接、增刪改查等基本操作技巧,需要的朋友可以參考下2019-01-01Java Hibernate中的持久化類和實(shí)體類關(guān)系
Hibernate是一種Java對(duì)象關(guān)系映射框架,通過持久化類將Java對(duì)象映射到數(shù)據(jù)庫(kù)表中。持久化類需要實(shí)現(xiàn)無參構(gòu)造器、具有標(biāo)識(shí)屬性和使用注解或XML進(jìn)行映射。Hibernate通過Session來管理對(duì)象的狀態(tài),包括臨時(shí)狀態(tài)、持久化狀態(tài)和游離狀態(tài)2023-04-04在IDEA中配置tomcat并創(chuàng)建tomcat項(xiàng)目的圖文教程
這篇文章主要介紹了在IDEA中配置tomcat并創(chuàng)建tomcat項(xiàng)目的圖文教程,需要的朋友可以參考下2020-07-07java基礎(chǔ)之字符串編碼知識(shí)點(diǎn)總結(jié)
這篇文章主要介紹了java基礎(chǔ)之字符串編碼總結(jié),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,要的朋友可以參考下2021-04-04springboot serverEndpoint導(dǎo)致@resource注解不生效
在SpringBoot中,@Resource注解用于注入依賴,本文主要介紹了springboot serverEndpoint導(dǎo)致@resource注解不生效,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12淺談hashmap為什么查詢時(shí)間復(fù)雜度為O(1)
這篇文章主要介紹了hashmap為什么查詢時(shí)間復(fù)雜度為O(1),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08