以前我們使用JavaMail發送郵件,步驟挺多的。現在的項目跟Spring整合的比較多。所以這里主要談談SpringMail發送。
導入jar包。
配置applicationContext-email.xml。
編寫代碼。
Maven地址如下
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.5</version>
</dependency>
配置applicationContext-email.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" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <!-- 基於校驗規則的郵件發送方式 --> <!-- SMTP協議介紹 --> <property name="host" value="smtp.qq.com" /> <property name="username" value="@qq.com" /> <property name="password" value="" />// <property name="javaMailProperties"> <props> <!-- 必須進行授權認證,它的目的就是阻止他人任意亂發郵件 --> <prop key="mail.smtp.auth">true</prop> <!-- SMTP加密方式:連接到一個TLS保護連接 --> <prop key="mail.smtp.starttls.enable">true</prop> <!-- 設置郵件發送超時時間 --> <prop key="mail.smtp.timeout">25000</prop> </props> </property> </bean> </beans>
在這里,要注意一下:
個人郵箱使用的主機是:
<property name="host" value="smtp.qq.com"/> -->
企業郵箱使用的主機是:
<property name="host" value="smtp.exmail.qq.com"/>
關於qq郵箱的授權碼,如果是企業郵箱,則使用登錄密碼,否則要去獲取授權碼,要不然會報異常
Exception in thread "main" org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is javax.mail.AuthenticationFailedException
當然,我們可以使用163郵箱發送,步驟也是一樣,要去申請授權碼,只是有點奇怪的是,163發送會被當成垃圾郵箱處理。所以這里建議不要使用163郵箱發送郵件。
詳細代碼如下
public class EmailUtil {
public void sendMsg() {
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml",
"applicationContext-email.xml");
MailSender ms = (MailSender) ac.getBean("mailSender");
SimpleMailMessage smm = new SimpleMailMessage();
// 發送
smm.setFrom("11--@qq.com");//此處省略郵箱
// 接收
smm.setTo("18----@163.com");
// 主題
smm.setSubject("庫存預警" + System.currentTimeMillis());
// 內容
smm.setText("庫存預警");
//
smm.setSentDate(new Date());
ms.send(smm);
System.out.println("end");
}
public static void main(String[] args) {
EmailUtil emailUtil = new EmailUtil();
emailUtil.sendMsg();
}
}
發送成功截圖如下:

好了,Spring整合email到此結束。
