Software, Java & afins

Fabricio Braga, Sun Certified

Email usando Spring e GMail

escrito por Fabricio Braga em Sep 2009

Aqui um exemplo simples de como enviar email usando Spring Framework e uma conta do GMail.  O método todo é muito fácil.

Primeiro mapeamos o nosso beans no Spring, vejamos:

<bean id=”mailSender”>
<property name=”host” value=”smtp.gmail.com” />
<property name=”port” value=”465″ />
<property name=”protocol” value=”smtps” />
<property name=”username” value=”gaiden@gaiden.com.br” />
<property name=”password” value=”kasparov” />
<property name=”javaMailProperties”>
<props>
<prop key=”mail.smtps.auth”>true</prop>
<prop key=”mail.smtps.starttls.enable”>true</prop>
<prop key=”mail.smtps.debug”>true</prop>
</props>
</property>
</bean>

Nosso mail sender:

<bean id=”mailSender” class=”org.springframework.mail.javamail.JavaMailSenderImpl”>
<property name=”host” value=”smtp.gmail.com” />
<property name=”port” value=”465″ />
<property name=”protocol” value=”smtps” />
<property name=”username” value=”seuemail@gmail.com” />
<property name=”password” value=”suasenha” />
<property name=”javaMailProperties”>
<props>
<prop key=”mail.smtps.auth”>true</prop>
<prop key=”mail.smtps.starttls.enable”>true</prop>
<prop key=”mail.smtps.debug”>true</prop>
</props>
</property>
</bean>

Aqui nossa mail message:

<bean id=”templateMessage” class=”org.springframework.mail.SimpleMailMessage”>
<property name=”from” value=”seuemail@gmail.com” />
<property name=”subject” value=”Enviado com Spring!” />
</bean>

E é claro, o nosso bean que vai enviar de fato o email.  Injetamos nele o nosso mail sender e nossa mail message:

<bean name=”sendMail” class=”com.mymail.SendMail”>
<property name=”mailSender” ref=”mailSender” />
<property name=”templateMessage” ref=”templateMessage” />
</bean>

Aqui o código no bean, como ficaria:

public class SendMail{
private MailSender mailSender;
private SimpleMailMessage templateMessage;

public void sendEmail(){

try{
// criamos uma copia “thread safe” e customizamos:
SimpleMailMessage msg = new SimpleMailMessage(this.templateMessage);
msg.setTo(”emaildestino@email.com”);
msg.setText(”email enviado usando spring framework e gmail!”);

}catch(Exception e){
e.printStackTrace();
}

E pronto!  ao executar o método, você terá a mensagem enviada e na sua caixa de saída do GMail a mensagem enviada pela sua aplicação.

Aqui uma nota importante: cuidado ao utilizar contas do GMail em aplicações web para o envio de grandes quantidades de email.  O GMail tem um política agressiva de filtros de Spam, e em pouquíssimo tempo sua conta será considerada spammer e desativada.

Espero ter ajudado!

Comments are closed.