Spring Mail

Dit is een van de artikelen uit een reeks over Spring. Zie ook de volgende delen :

Spring ondersteunt op eenvoudige wijze het verzenden van email. Hieronder wordt een voorbeeld uitgewerkt waarbij gebruik wordt gemaakt van gMail als SMTP server. Allereerst wordt in de applicatie context een bestand email-context gedefinieerd. Daarin worden ondermeer user/password opgenomen en de mail protocol instellingen. In dit geval wordt gebruik gemaakt van het TLS prototcol.

<?xml version="1.0" encoding="UTF-8"?>
<beans …>
	<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
		<property name="host" value="smtp.gmail.com" />
		<property name="port" value="587" />
		<property name="username" value="yourname@gmail.com" />
		<property name="password" value="secret" />
		<property name="javaMailProperties">
	   		<props>
       	      <prop key="mail.smtp.auth">true</prop>
       	      <prop key="mail.smtp.starttls.enable">true</prop>
       	   </props>
		</property>
	</bean>

	<bean id="templateMessage" class="org.springframework.mail.SimpleMailMessage">
		<property name="from" value="sender@gmail.com"/>
		<property name="subject" value="Subject"/>
	</bean>

	<bean id="emailBean" class="org.biz.employees.model.service.EmailSessionBean">
		<property name="mailSender" ref="mailSender"/>
		<property name="templateMessage" ref="templateMessage"/>
	</bean>
</beans>

Hieronder een voorbeeld van een email service class die de mail verzending verzorgt.

@Named("emailBean")
@Service
public class EmailService {

	private MailSender mailSender;
	private SimpleMailMessage templateMessage;

	public void setMailSender(MailSender mailSender) {
		this.mailSender = mailSender;
	}

	public void setTemplateMessage(SimpleMailMessage templateMessage) {
		this.templateMessage = templateMessage;
	}

	public String sendEmail(String to, String subject, String body) {
             try {
                javax.mail.internet.InternetAddress ia =
                                              new javax.mail.internet.InternetAddress(to);
                   ia.validate();
             } catch (javax.mail.internet.AddressException e) {
    	             return “email heeft niet een juist formaat”;
             }

	    SimpleMailMessage message = new SimpleMailMessage();
	    message.setFrom("yourname@gmail.com");
	    message.setTo(to);
	    message.setSubject(subject);
	    message.setText(body);

             try {
        	         mailSender.send(message);
             } catch(MailAuthenticationException e) {
                 return e.getMessage();
             }
             return "OK";
       }
}

Hieronder een voorbeeld waarin de email service class wordt aangeroepen.

        String mailstatus = emailBean.sendEmail(email, subject,  message);
This entry was posted in JEE, Spring and tagged , . Bookmark the permalink.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd.

De volgende HTML tags en attributen zijn toegestaan: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>