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)容,希望對(duì)大家的學(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)文章
基于Java實(shí)現(xiàn)緩存Cache的深入分析
本篇文章是對(duì)Java實(shí)現(xiàn)緩存Cache進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
用Java代碼實(shí)現(xiàn)棧數(shù)據(jù)結(jié)構(gòu)的基本方法歸納
這篇文章主要介紹了用Java代碼實(shí)現(xiàn)棧數(shù)據(jù)結(jié)構(gòu)的基本方法歸納,各種算法的實(shí)現(xiàn)也是ACM上經(jīng)常出現(xiàn)的題目,是計(jì)算機(jī)學(xué)習(xí)的基本功,需要的朋友可以參考下2015-08-08
Java class文件格式之常量池_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了Java class文件格式之常量池的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
Springboot之restTemplate的配置及使用方式
這篇文章主要介紹了Springboot之restTemplate的配置及使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
Java實(shí)現(xiàn)ATM銀行管理系統(tǒng)(控制臺(tái)版本)
這篇文章主要為大家詳細(xì)介紹了如何利用Java語言實(shí)現(xiàn)控制臺(tái)版本的ATM銀行管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
Java項(xiàng)目中獲取路徑的絕對(duì)路徑問題和相對(duì)路徑問題
這篇文章主要介紹了如何Java項(xiàng)目中獲取文件地址,在 Java 項(xiàng)目中我們經(jīng)常會(huì)讀取配置文件,但是文件的路徑在獲取時(shí)我們是怎么得到的?下面我們就一起進(jìn)入文章學(xué)習(xí)該內(nèi)容吧,需要的朋友可以參考下2022-02-02

