Como enviar e-mail com Spring usando o Gmail

Postado por em   ●   20 comentários

Enviar e-mail com o Spring Framework é muito fácil!

Nessa aula você vai aprender, com detalhes, as poucas configurações que são necessárias para isso.

Nós faremos o uso da interface JavaMailSender e do servidor SMTP do Gmail.

No final da aula você terá aprendido a:

  • Configurar uma implementação da classe JavaMailSender
  • Colocar as configurações do servidor SMTP em um arquivo externo
  • Habilitar o Gmail para permitir o envio por aplicações externas
  • Utilizar a classe SimpleMailMessage para, efetivamente, enviar o e-mail

Vamos lá!?

Ah! Só antes que eu me esqueça… Se você ainda não sabe configurar o Spring Framework, dá uma olhada nessa aula antes.

O e-book que cito na aula é esse aqui:

Ebook Spring Boot

Abraço pra você e até uma próxima!

PS: Você pode baixar o código-fonte de exemplo em nosso GitHub: http://github.com/algaworks/videoaula-spring-email-gmail

É graduado em Sistemas de Informação, trabalha como instrutor na AlgaWorks e está no mercado de programação Java há mais de 9 anos, principalmente no desenvolvimento de sistemas corporativos.

20 comentários sobre “Como enviar e-mail com Spring usando o Gmail

  1. Jilles Ragonha -

    Opa, muito interessante, já estou dando uma olhada.
    Alexandre, deixa eu perguntar uma coisa, tem como a gente armazenar imagens, da mesma maneira que armazenamos no amazon s3, usando o google drive?

    1. Alexandre Afonso Autor do post-

      Opa Jilles! Bacana que gostou!

      Nunca usei a API do Google Drive. Acredito que se for só para armazenar, então ok. Mas o Google Drive não nos dá o link direto para a imagem. Assim complicaria para fazer exibições das mesmas em nossos sistemas.

      Abraço!

  2. Ivanido Filho -

    Muito bacana o post. Vai ajudar muito.

    1. Alexandre Afonso Autor do post-

      Bacana que curtiu Ivanido!

      Abraço!

  3. Marco Duarte -

    Legal Alexandre, mto bom, como sempre!

    Gostaria de saber como:

    1- Enviar email com anexo
    2- Enviar email com conteúdo em html
    3- E, como vc indicou, enviando por outros servidores de email

    Abraço e parabéns.

    1. Alexandre Afonso Autor do post-

      Legal que deixou sua sugestão Marco!

      Com certeza isso ajuda a decidirmos pelos próximos conteúdos.

      Abraço!

  4. Marco Duarte -

    Oi Alexandre, aproveitando esta conexão, gostaria de saber como em projeto web imprimir direto na impressora sem passar pelo spool e tbm de enviar uma impressão para “uma específica” impressora, talvez usando o Google Print ou outra solução que possa resolver esse problema em app web.

    Valeu!

    1. Alexandre Afonso Autor do post-

      Oi Marco!

      Infelizmente, faz muitos anos que não preciso mandar algo imprimir. A última vez ainda era um sistema desktop. Então não tenho detalhes de como a tecnologia das impressoras está hoje. Mas, se eu fosse usar essa funcionalidade, com certeza começaria pelo Google Print. Fazendo funcionar com o Google Print, depois eu avaliaria outras soluções.

      Abraço!

  5. DEMÉTRIO SANTANA -

    Excelente aula, Alexandre, muito obrigado!

    1. Alexandre Afonso Autor do post-

      Valeu Demétrio!

      Abraço!

  6. Luciano -

    Muito bom, mas me surgiu uma duvida.

    Porque tem que ativar o envio de mail menos seguro no email mail que vai receber o email e não no email que vai enviar?

    Sempre que for enviar, a conta de quem vai receber vai ter que passar por essa configuração ?

    1. Alexandre Afonso Autor do post-

      Legal que gostou Luciano!

      Na verdade, é só no e-mail de quem vai enviar. Quem vai receber não precisa. Eu acabei demonstrando a configuração no e-mail que eu usei de destino, mas foi porque ele já estava aberto.

      Abraço!

  7. Paulo H Albanez -

    Muito bom, como seria para:

    Enviar email com anexo.
    Enviar email com conteúdo em html.

    1. Alexandre Afonso Autor do post-

      Valeu pela sugestão Paulo!

      Anotei aqui para ajudar a decidir sobre os próximos conteúdos. :)

  8. Wagner Roque -

    Aula nota 10, Muito bem explicada!
    Parabéns Alexandre!

  9. Jean -

    Alexandre, a javamailsender quando vc da o send existe algum retorno que indique se o e-mail foi ou não enviado?

    1. Alexandre Afonso Autor do post-

      Olá Jean!

      O que podemos fazer é usar try-catch.

      Abraço!

  10. Gabriel -

    Ajudou muito. Bastante detalhado. Muito obrigado.

    1. Alexandre Afonso Autor do post-

      Que legal que gostou Gabriel!

      Abraço!

Deixe um comentário