使用spring的JavaMail發送郵件


以前我們使用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到此結束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM