Envío de E-Mail con Spring

Aquí un ejemplo para enviar mails con Spring:

Requiere spring.jar, mail.jar y activation.jar
Primero agregar los atributos del mail en el contexto de spring:



<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="mailhost.4cuatros.com"/>
</bean>
<bean id="templateMessage" class="org.springframework.mail.SimpleMailMessage" />
<bean id="servicioMailUploadFile" class="com.java.4cuatros.servicios.impl.ServicioMailImpl">
<property name="mailSender" ref="mailSender"/>
<property name="templateMessage" ref="templateMessage"/>
</bean>


Colocamos el servidor de correo en "value" donde el name="host".

Creamos nuestra interface ServicioMail :



public interface ServicioMail{
public void sendMail(String userMail, String subject, String mensaje, String[] mailUsuariosForCC, String mailUsuariosForTo);
{



Y su implementación ServicioMailImpl.java :


public class ServicioMailImpl implements ServicioMail {
protected final Log log = LogFactory.getLog(getClass());
private MailSender mailSender;
private SimpleMailMessage templateMessage;

public MailSender getMailSender() {
return mailSender;
}

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

public SimpleMailMessage getTemplateMessage() {
return templateMessage;
}

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

public void sendMail(String userMail, String subject, String mensaje, String[]mailUsuariosForCC, String
mailUsuariosForTo){

SimpleMailMessage msg = new SimpleMailMessage(this.templateMessage);
// mail del usuario que envía
msg.setFrom(userMail);
// mails de los destinatarios
msg.setTo(mailUsuariosForTo);
// mail de los destinatarios CC (con copia)
msg.setCc(mailUsuariosForCC);
// mensaje
msg.setText(mensaje);
// asunto
msg.setSubject(subject);

try{
mailSender.send(msg);
}catch(MailException ex) {
log.debug("Error al enviar mail : " + ex.getMessage());
return;
}
log.info(" envio de mail exitoso !!"); }


Y eso es todo.... ¿sencillo no?

También se puede settear los atributos del SimpleMailMessage como propiedad del bean (otra manera):



<bean id="templateMessage" class="org.springframework.mail.SimpleMailMessage">
<property name="from" value="christian.komiya@4cuatros.com"/>
<property name="subject" value="Hola mundo"/>
....
...
</bean>

Comentarios