[java] Vaadin의 전자메일 발송 기능

Vaadin은 Java 개발자들이 사용하는 유명한 프레임워크 중 하나입니다. Vaadin은 웹 애플리케이션 개발을 위한 도구로써, 강력한 사용자 인터페이스 및 다양한 기능을 제공합니다. 이 중에서도 Vaadin에서 제공하는 전자메일 발송 기능에 대해 알아보겠습니다.

Vaadin Mail API

Vaadin은 Mail API를 통해 전자메일을 손쉽게 발송할 수 있는 기능을 제공합니다. Mail API를 사용하려면 Vaadin의 디펜던시를 추가해야 합니다.

<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-mail</artifactId>
    <version>1.0.0</version>
</dependency>

Mail API를 사용한 전자메일 발송하기

Vaadin의 Mail API를 사용하여 전자메일을 발송하는 예제 코드를 살펴보겠습니다.

import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.notification.Notification;
import com.vaadin.flow.component.notification.NotificationVariant;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.textfield.EmailField;
import com.vaadin.flow.router.Route;
import com.vaadin.flow.server.VaadinRequest;
import com.vaadin.flow.spring.annotation.SpringUI;
import com.vaadin.flow.spring.annotation.UIScope;
import com.vaadin.flow.spring.boot.SpringBootAutoConfiguration;
import com.vaadin.mail.MailAddress;
import com.vaadin.mail.MailMessage;
import com.vaadin.mail.smtp.SMTPTransport;

@Route("")
@UIScope
@SpringUI
public class MainView extends VerticalLayout {

    private EmailField emailField = new EmailField("Email");
    private Button sendButton = new Button("Send");

    public MainView() {
        sendButton.addClickListener(e -> sendEmail());
        add(emailField, sendButton);
    }

    private void sendEmail() {
        MailMessage message = new MailMessage();
        message.setSubject("Test Email");
        message.setHtmlContent("<p>This is a test email sent from Vaadin.</p>");

        MailAddress sender = new MailAddress("your-email@example.com");
        MailAddress recipient = new MailAddress(emailField.getValue());

        message.setFrom(sender);
        message.setTo(recipient);

        try {
            SMTPTransport.send(message);
            Notification.show("Email sent successfully", 3000, Notification.Position.MIDDLE)
                    .addThemeVariants(NotificationVariant.LUMO_SUCCESS);
        } catch (Exception exception) {
            Notification.show("Failed to send email", 3000, Notification.Position.MIDDLE)
                    .addThemeVariants(NotificationVariant.LUMO_ERROR);
        }
    }
}

위의 예제 코드는 Vaadin 프로젝트에서 전자메일 발송 기능을 사용하는 방법을 보여줍니다. MailMessage를 생성하여 메일의 제목과 내용을 설정하고, 발신자와 수신자를 설정한 후에 SMTPTransport.send()를 호출하여 전자메일을 발송합니다.

참고 자료