Spring與Java郵件的整合
Spring與Java郵件的整合
在這篇SpringJavaMail文章中,您將瞭解與JavaMail的另一個Spring整合。本文將允許您使用SpringFramework介面和類傳送和接收電子郵件。您將使用JavaMailAPI傳送和接收郵件。為了獲得更多的理解,您將看到一個使用EclipseIDE的工作示例。
Java郵件API
SpringFramework有許多用於傳送/接收電子郵件的使用者介面和類。有一個叫做org.springframework.mail。它是一個根包,它在Spring框架中提供郵件支援。
這,這個,那,那個班和介面Spring框架中Java郵件支援所需的定義如下:
郵件傳送者介面
它是一個根介面,提供傳送簡單郵件的基本功能。
JavaMailSender介面
它是MailSender的子介面。它支援MIME訊息,並與MimeMessageHelper類一起使用。它用於建立JavaMail MimeMessage。建議使用MimeMrssage製劑機制來使用此介面。
JavaMailSenderImpl類
它具有JavaMailSender介面的實現,並支援JavaMailMime訊息和SpringSimpleMail訊息。
SimpleMailMessage類
它幫助建立一個簡單的郵件訊息,包括從,到,抄送,主題等。
MimeMessage製劑介面
它用作準備JavaMail MIME訊息的回撥介面。
MimeMessageHelper類
它被用作一個助手類,它包含MIME訊息,並提供對內聯元素(如HTML文字內容、影象等)的支援。
使用Gmail伺服器在Spring中傳送郵件的示例
在本例中,您將看到兩個SpringMail類:
用於建立訊息的SimpleMailMessage。
用於傳送訊息的JavaMailSenderImple。
使用Spring框架傳送電子郵件需要以下檔案:
MailMail.java
ApplicationContext.java
Test.java
在開始之前,需要有mail.jar和activation.jar來執行這個示例。
MailMail.java
package com.example;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
public class MailMail{
private MailSender mailSender;
public void setMailSender(MailSender mailSender) {
this.mailSender = mailSender;
}
public void sendMail(String from, String to, String subject, String msg) { SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setTo(to);
message.setSubject(subject);
message.setText(msg);
mailSender.send(message);
}
}
它是用於定義mailSender屬性的簡單類,MailSender的物件將在執行時提供給該屬性。MailSender介面的Send()用於傳送簡單郵件。
ApplicationContext.xml
在這個XML檔案中,您將為JavaMailSenderImpl類建立一個bean。您需要定義以下屬性的值:
寄主
使用者名稱
密碼
JavaMailProperties
<?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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.gmail.com" />
<property name="username" value="[email protected]" />
<property name="password" value="yourgmailpassword" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.socketFactory.port">465</prop>
<prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
<prop key="mail.smtp.port">465</prop>
</props>
</property>
</bean>
<bean id="mailMail" class="com.example.MailMail">
<property name="mailSender" ref="mailSender" />
</bean>
</beans>
Test.java
該類從applicationContext.xml檔案中獲取電子郵件的bean,並呼叫MailMail類的Sendmail方法。
package com.example;
import org.springframework.beans.factory.*;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.*;
public class Test {
public static void main(String[] args) {
Resource r=new ClassPathResource("applicationContext.xml");
BeanFactory b=new XmlBeanFactory(r);
MailMail m=(MailMail)b.getBean("mailMail");
String sender="[email protected]";//write here sender gmail id
String receiver="[email protected]";//write here receiver id
m.sendMail(sender,receiver,"hi","welcome");
System.out.println("success");
}
}
若要執行此示例,請執行以下操作:
載入彈簧java的JAR檔案郵件。
Load the jar files mail.jar and activation.jar
更改applicationContext.xml檔案中的使用者名稱和密碼等屬性。
更改Test.java檔案中的發件人Gmail id和接收電子郵件id。
編譯並執行Test類。
所以,這都是關於SpringJavaMail的。希望你喜歡我們的解釋。
結語
在本節中,您瞭解了Spring與Mail API的整合。您看到了如何使用JavaMailAPI來發送和接收郵件。為了獲得更多的理解,您看到了一個使用EclipseIDE的Gmail伺服器配置郵件和傳送/接收郵件的工作示例。如果您有任何問題,歡迎在評論部分提問。