1. 程式人生 > >Spring與Java郵件的整合

Spring與Java郵件的整合

Spring與Java郵件的整合

在這篇SpringJavaMail文章中,您將瞭解與JavaMail的另一個Spring整合。本文將允許您使用SpringFramework介面和類傳送和接收電子郵件。您將使用JavaMailAPI傳送和接收郵件。為了獲得更多的理解,您將看到一個使用EclipseIDE的工作示例。

Java郵件API

SpringFramework有許多用於傳送/接收電子郵件的使用者介面和類。有一個叫做org.springframework.mail。它是一個根包,它在Spring框架中提供郵件支援。

這,這個,那,那個介面Spring框架中Java郵件支援所需的定義如下:

Spring Java Mail

郵件傳送者介面

它是一個根介面,提供傳送簡單郵件的基本功能。

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

Spring Java Mail

在開始之前,需要有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>

Spring Java Mail

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伺服器配置郵件和傳送/接收郵件的工作示例。如果您有任何問題,歡迎在評論部分提問。