E-Mail(s) versenden mit Spring 4

E-Mails verschicken mit Spring4

In einem früheren Tutorial kann man sich bereits anschauen wie man E-Mails mit JavaMail versendet. Heute möchte ich euch zeigen wie man mit weniger als zehn Zeilen Code dank der Hilfe von Spring 4 eine Mail verschickt.

1) Maven Projekt anlegen
2) Dependecies hinzufügen
3) JavaMailSenderImpl Bean erstellen
4) Dummy-Klasse erstellen

Dependecies

Benötigt wir natürlich die Spring Mail integration, javax.mail sowie das Apache Logging Framework.

<dependencies>
    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-mail</artifactId>
        <version>4.0.3.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4</version>
    </dependency>
</dependencies>

Bean erstellen

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="username" value="your-username"/>
    <property name="password" value="your-password"/>
    <property name="host" value="your-host"/>
    <property name="port" value="25"/>
    <property name="javaMailProperties">
        <props>
            <prop key="mail.transport.protocol">smtp</prop>
            <prop key="mail.smtp.auth">true</prop>
            <prop key="mail.smtp.starttls.enable">true</prop>
            <prop key="mail.debug">true</prop>
        </props>
    </property>
</bean>

Sample Klasse

In diesem Beispiel heißt die Spring Konfigurationsdatei contex.xml und liegt im resources Verzeichnis.

ApplicationContext context = new ClassPathXmlApplicationContext("context.xml");
JavaMailSender mailSender = context.getBean("mailSender", JavaMailSender.class);;

SimpleMailMessage simpleMessage = new SimpleMailMessage();
simpleMessage.setTo("info@itblogging.de");
simpleMessage.setText("Hello World.");
simpleMessage.setSubject("Spring Mail Integration");
simpleMessage.setFrom("yourmailaddress@gmail.de");
mailSender.send(simpleMessage);

Output

In eurer Konsole solltet ihr in etwa folgendes stehen haben:

Date: Sun, 27 Jul 2014 19:23:45 +0200 (CEST)
From: yourmailaddress@gmail.de
To: info@itblogging.de
Message-ID: <1029837027.05406181425141.JavaMail>
Subject: Spring Mail Integration!!
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hello World.
.
250 OK id=1XBSAk-0004lk-0Q
QUIT
221 hosteurope.de closing connection