spring+maven實(shí)現(xiàn)發(fā)送郵件功能
前言
Java編程中發(fā)郵件也是常用的。但是原生的jdk自帶的發(fā)送郵件用起來還是比較麻煩的。spring框架在Java語言中完全是神一樣的存在,通過spring框架的郵件工具來發(fā)送郵件就非常方便了,本文就主要講解了Java編程中利用spring提供的郵件工具來發(fā)送郵件。
編碼實(shí)現(xiàn)發(fā)送郵件
1、首先我們需要一個(gè)Spring框架的環(huán)境
2、發(fā)送郵件需要的核心依賴包:spring-context-supportXXX.jar、activation-1.1.jar、javax.mail-1.5.2.jar
3、導(dǎo)入以上核心包到項(xiàng)目中
maven依賴配置如下:
<!-- mail and spring-context-support for send email -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.2</version>
</dependency>
<!-- /email -->
4、導(dǎo)入了上面的依賴我們就開始編寫一個(gè)簡單的email發(fā)送sample
package service;
import java.io.File;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
public class EmailSample {
/** 日志 **/
private static final Log log = LogFactory.getLog(EmailSample.class);
/**
* 郵件測試工具類
*
* @param subject
* 郵件主題
* @param content
* HTML格式的郵件內(nèi)容
*/
public static void sendFileMail(String subject, String content) {
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
// 設(shè)置自己登陸email的服務(wù)商提供的host
senderImpl.setHost("smtp.126.com");
// 設(shè)置自己登陸郵箱賬號(hào)
senderImpl.setUsername("test@126.com");
// 郵箱密碼
senderImpl.setPassword("******");
try {
// 建立HTML郵件消息
MimeMessage mailMessage = senderImpl.createMimeMessage();
// true表示開始附件模式.如果郵件不需要附件設(shè)置成false即可
MimeMessageHelper messageHelper = new MimeMessageHelper(
mailMessage, true, "utf-8");
// 設(shè)置收信人的email地址
messageHelper.setTo("111@qq.com");
// 設(shè)置寄信人的email地址{與上面登陸的郵件一致}
messageHelper.setFrom("test@126.com");
// 設(shè)置郵件發(fā)送內(nèi)容的主題
messageHelper.setSubject(subject);
// true 表示啟動(dòng)HTML格式的郵件
messageHelper.setText("<html><title>這是一封郵件</title><body>"
+ content + "</body></html>", true);
// 如不需要附件,這里可以省略---------------------------------------START
// 讀取附件一
FileSystemResource file1 = new FileSystemResource(new File(
"e:/test.jpg"));
// 讀取附件二
FileSystemResource file2 = new FileSystemResource(new File(
"e:/測試.txt"));
// 添加附件一
messageHelper.addAttachment("test.jpg", file1);
// 添加附件二
// 附件名有中文可能出現(xiàn)亂碼
messageHelper
.addAttachment(MimeUtility.encodeWord("測試.txt"), file2);
// 如不需要附件,這里可以省略------------------------------------------END
// 發(fā)送郵件
senderImpl.send(mailMessage);
log.info("Email Send Success!");
} catch (Exception e) {
log.error("Email Send Error!" + e.getMessage());
}
}
public static void main(String[] agrs) {
// 注意測試需要修改您自己的郵件服務(wù)商host,登陸郵件用戶,郵件密碼,附件,收信人地址
sendFileMail("測試郵件", "<H1>測試郵件標(biāo)題</H1>");
}
}
【注意事項(xiàng)】:運(yùn)行main方法測試時(shí)候修改參數(shù):服務(wù)商host、登陸用戶、登陸密碼、收信人地址、附件(不用附件可省略)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Spring學(xué)習(xí)筆記3之消息隊(duì)列(rabbitmq)發(fā)送郵件功能
- springMVC發(fā)送郵件的簡單實(shí)現(xiàn)
- Spring框架JavaMailSender發(fā)送郵件工具類詳解
- Java的Spring框架中實(shí)現(xiàn)發(fā)送郵件功能的核心代碼示例
- Spring Boot實(shí)戰(zhàn)之發(fā)送郵件示例代碼
- Spring Boot中利用JavaMailSender發(fā)送郵件的方法示例(附源碼)
- Spring+quartz實(shí)現(xiàn)定時(shí)發(fā)送郵件功能實(shí)例
- SpringBoot使用FreeMarker模板發(fā)送郵件
- spring mail借助qq郵箱服務(wù)器發(fā)送郵件
- SpringBoot實(shí)現(xiàn)發(fā)送郵件任務(wù)
相關(guān)文章
詳解SpringBoot中時(shí)間類型的序列化與反序列化
這篇文章主要為大家詳細(xì)介紹了SpringBoot中時(shí)間類型的序列化與反序列化的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-02-02
Spring Jpa多數(shù)據(jù)源工程配置過程解析
這篇文章主要介紹了Spring Jpa多數(shù)據(jù)源工程配置過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
Java 實(shí)現(xiàn)多線程切換等待喚醒交替打印奇偶數(shù)
這篇文章主要介紹了Java 實(shí)現(xiàn)多線程切換等待喚醒交替打印奇偶數(shù) ,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05
SpringBoot上傳圖片到指定位置并返回URL的實(shí)現(xiàn)
本文主要介紹了SpringBoot上傳圖片到指定位置并返回URL,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下<BR>2022-03-03
jdk8?FunctionalInterface注解源碼解讀
這篇文章主要介紹了jdk8?FunctionalInterface注解源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
Java中Integer的parseInt和valueOf的區(qū)別詳解
這篇文章主要介紹了Java中Integer的parseInt和valueOf的區(qū)別詳解,nteger.parseInt(s)是把字符串解析成int基本類型,Integer.valueOf(s)是把字符串解析成Integer對象類型,其實(shí)int就是Integer解包裝,Integer就是int的包裝,需要的朋友可以參考下2023-11-11

