1.引入依賴
<dependencies>
<!--上下文支持包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>compile</scope>
</dependency>
<!--方便將文件內容以String類型讀出-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
2.創建一個spring的配置文件
applicationContext-mail.xml
注意
獲取授權碼
獲取服務器地址
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="mailSend" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<!--郵件發送服務器的地址-->
<!--126首頁 設置 POP3/SMTP/IMAP 最下面 SMTP服務器-->
<property name="host" value="smtp.126.com"/>
<!--發送郵件賬號-->
<property name="username" value="填你的郵箱"/>
<!--客戶端授權碼-->
<!--126首頁 設置 POP3/SMTP/IMAP 最上面 POP3/SMTP服務 開啓 然後獲取該值-->
<property name="password" value="填你自己的"/>
<!--設置郵件的編碼格式-->
<property name="defaultEncoding" value="UTF-8"/>
<property name="javaMailProperties">
<props>
<!--是否開啓用戶身份驗證-->
<prop key="mail.smtp.auth">true</prop>
<!--發送郵件超時時間-->
<prop key="mail.smtp.timeout">30000</prop>
</props>
</property>
</bean>
</beans>
3.編寫測試方法
這裏寫了四個測試類,包含了不同的發送方式
最基本的郵件發送
import org.junit.runner.RunWith;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
//最基本的郵件發送
public class JavaMailSendDemo {
public static void main(String[] args) {
// 手動加載spring環境
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext*.xml");
// 根據上下文 從spring環境獲取創建郵件發送對象
JavaMailSender mailSender = (JavaMailSender)context.getBean("mailSend");
// 1.發送最簡單郵件
SimpleMailMessage mailMessage = new SimpleMailMessage();
// 設置郵件屬性 發送者郵件地址
mailMessage.setFrom("[email protected]");
// 設置發給誰 郵件接收者
mailMessage.setTo("[email protected]");
// 設置郵件標題
mailMessage.setSubject("哈哈哈你好啊");
// 設置郵件正文
mailMessage.setText("今天天氣真不錯啊,小老弟");
// 調用郵件發送對象,發送郵件
mailSender.send(mailMessage);
System.out.println("郵件發送成功");
}
}
攜帶附件發送
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
//攜帶附件發送
public class JavaMailSendDemo2 {
public static void main(String[] args) {
// 手動加載spring環境
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext*.xml");
// 根據上下文 從spring環境獲取創建郵件發送對象
JavaMailSender mailSender = (JavaMailSender)context.getBean("mailSend");
//創建支持附件郵件對象
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
//創建郵件發送助手類
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);
//設置郵件屬性 發送者郵件地址
messageHelper.setFrom("[email protected]");
//設置發給誰 郵件接收者
messageHelper.setTo("[email protected]");
//設置郵件標題
messageHelper.setSubject("哈哈哈你好啊");
//設置郵件正文 兩種 1.不支持Html語法的 2.支持Html語法的
// messageHelper.setText("今天天氣真不錯啊,小老弟");
//後面加true後,就支持Html語法
messageHelper.setText("<h1>今天天氣真不錯啊,小老弟</h1>",true);
//找到需要發送的文件
File file1 = new File("D:\\1.png");
//將文件關聯到發送體
messageHelper.addAttachment("1.png",file1);
} catch (MessagingException e) {
e.printStackTrace();
}
// 調用郵件發送對象,發送郵件
mailSender.send(mimeMessage);
System.out.println("郵件發送成功");
}
}
指定本地圖片嵌入到正文中發送
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
//圖片嵌入到正文中
public class JavaMailSendDemo3 {
public static void main(String[] args) {
// 手動加載spring環境
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext*.xml");
// 根據上下文 從spring環境獲取創建郵件發送對象
JavaMailSender mailSender = (JavaMailSender)context.getBean("mailSend");
//創建支持附件郵件對象
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
//創建郵件發送助手類
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);
//設置郵件屬性 發送者郵件地址
messageHelper.setFrom("[email protected]");
//設置發給誰 郵件接收者
messageHelper.setTo("[email protected]");
//設置郵件標題
messageHelper.setSubject("哈哈哈你好啊");
//設置內容 注意 cid: 是語法 後面跟設置的嵌入圖片的屬性名
messageHelper.setText("<h1>今天天氣真不錯啊,小老弟</h1><img src='cid:log'></img>",true);
//找到需要發送的文件
File file1 = new File("D:\\1.png");
//把圖片嵌入到郵件正文
messageHelper.addInline("log",file1);
} catch (MessagingException e) {
e.printStackTrace();
}
// 調用郵件發送對象,發送郵件
mailSender.send(mimeMessage);
System.out.println("郵件發送成功");
}
}
讀取本地文件以文本形式發送郵件
import org.apache.commons.io.IOUtils;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import sun.nio.ch.IOUtil;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.io.FileInputStream;
//讀取本地文件以文本形式發送郵件
public class JavaMailSendDemo4 {
public static void main(String[] args) {
// 手動加載spring環境
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext*.xml");
// 根據上下文 從spring環境獲取創建郵件發送對象
JavaMailSender mailSender = (JavaMailSender)context.getBean("mailSend");
//創建支持附件郵件對象
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
//創建郵件發送助手類
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);
//設置郵件屬性 發送者郵件地址
messageHelper.setFrom("[email protected]");
//設置發給誰 郵件接收者
messageHelper.setTo("[email protected]");
//設置郵件標題
messageHelper.setSubject("哈哈哈你好啊");
//使用commons工具類來讀取文件,String類型接收,如果文本里面要替換圖片可以使用cid:log
String text = IOUtils.toString(new FileInputStream("D:\\1.txt"),"UTF-8");
//設置內容 注意 cid: 是語法 後面跟設置的嵌入圖片的屬性名
messageHelper.setText(text,true);
//找到需要發送的文件
File file1 = new File("D:\\1.png");
//把圖片嵌入到郵件正文
messageHelper.addInline("log",file1);
} catch (Exception e) {
e.printStackTrace();
}
// 調用郵件發送對象,發送郵件
mailSender.send(mimeMessage);
System.out.println("郵件發送成功");
}
}