Envie e-mail com Spring Boot (integração SMTP)

        Este artigo explora a integração do Spring Boot com SMTP e como enviar e-mail de seu próprio aplicativo Spring Boot.

        Este artigo explora como enviar e-mails de seu próprio aplicativo Spring Boot.
        Sim, você pode ter uma API REST dedicada que aceita o endereço de e-mail, o assunto e o corpo do remetente e do destinatário do e-mail – os atributos clássicos que compõem o e-mail comercial. Sua equipe de front-end pode então chamar essa API à vontade, passando os parâmetros necessários e pronto! Seu e-mail foi enviado com facilidade.
        Spring Boot fornece dependências integradas que contêm todos os métodos necessários. Isso pode ser usado para enviar e-mails para endereços de e-mail válidos. É totalmente gratuito e muito fácil de integrar com aplicativos clássicos do Spring Boot.
        Neste artigo, veremos como enviar e-mails a partir de um aplicativo Spring Boot simples.
        Spring o implementa usando SimpleMailMessage e integrando spring-boot-starter-mail.
        Então, vamos começar.

passo 1

        Vá para start.spring.io e crie um novo projeto Spring Boot com apenas as seguintes dependências

  • Teia de primavera
  • Remetente de correio Java

        Clique em Construir projeto. Isso criará um arquivo zip, descompacte-o e abra-o no IntelliJ.
        Neste ponto, você tem um projeto básico do Spring Boot. Basta apertar o botão play para iniciar o aplicativo e verificar se tudo está funcionando.

 

Passo 2: Configure nosso servidor de e-mail

        A seguir, precisamos fornecer a configuração do Spring Mail. Basta adicionar a seguinte propriedade para configuração de email ao application.propertiesarquivo:

# email configs

spring.mail.host=smtp.gmail.com

spring.mail.username=<your email id>

spring.mail.password=<your password>

spring.mail.properties.mail.smtp.auth=true

spring.mail.properties.mail.smtp.starttls.enable=true

etapa 3

Depois que todas as configurações necessárias forem feitas, podemos expor nosso endpoint/mail restante, que aceitará solicitações recebidas para enviar emails para um endereço de email específico.

Vamos adicionar o seguinte código para que a camada controladora possa acessar nossa API, o que irá acionar o email.

@RestController
public class EmailController {

    @Autowired
    private EmailService emailService;

    @PostMapping("/mail")
    public void sendEMail(@RequestBody EmailRequest emailRequest) {
        System.out.println("Going to Send email: " + emailRequest.toString());
        emailService.sendEmail(emailRequest);
    }
}

Como podemos ver, o controlador espera um objeto de solicitação denominadoEmailRequest.

Portanto, crie um corpo de solicitação para solicitações de email com as seguintes propriedades para identificar o email:

public class EmailRequest {

    // Class data members
    private String recipient;
    private String msgBody;
    private String subject;
    private String attachment;
    
    //generate getters 
}

camada de serviço

Vamos falar sobre a classe de implementação. Ele conterá um objeto que JavaMailSenderpossui um método chamado send()com a seguinte assinatura:

void send(SimpleMailMessage simpleMessage) throws MailException;

Esta classe SimpleMailMessagevem do package   "org.springframework.mail".

Possui propriedades como remetente, destinatário, texto e assunto. Definimos todas essas propriedades importantes com base na solicitação recebida. Conforme mostrado abaixo, o método send será eventualmente 'javaMailSender'acionado com .

@Service
public class EmailServiceImpl implements EmailService {

    @Autowired
    private JavaMailSender javaMailSender;

    @Override
    public void sendEmail(EmailRequest emailRequest) {

        SimpleMailMessage mailMessage = new SimpleMailMessage();
        mailMessage.setFrom("abc@xyz");
        mailMessage.setTo(emailRequest.getRecipient());
        mailMessage.setText(emailRequest.getMsgBody());
        mailMessage.setSubject(emailRequest.getSubject());
        javaMailSender.send(mailMessage);
    }
}

Neste ponto, terminamos! Inicie o aplicativo e vá para Postman. Usamos a porta padrão do Spring (8080), então chamamos a APIlocalhost:8080/mail

Chame a API do Postman da seguinte maneira:

 

para concluir

Neste artigo, aprendemos uma maneira fácil de enviar e-mails a partir de um aplicativo Spring Boot. Ele usa JMS JavaMailSenderpara enviar e-mails por meio de uma API REST simples. 

Acho que você gosta

Origin blog.csdn.net/qq_28245905/article/details/132202745
Recomendado
Clasificación