본문 바로가기

jsp

이메일 전송: JSP를 사용하여 이메일을 전송하는 예제.

반응형

이메일을 전송하는 작업은 JavaMail API를 사용하여 JSP에서 구현할 수 있습니다. 이 예제들은 이메일 전송 기능을 구현하는 방법을 보여줍니다. 먼저, JavaMail API와 관련된 라이브러리를 프로젝트에 포함시켜야 합니다. 이를 위해 javax.mail.jar 파일을 WEB-INF/lib 디렉토리에 추가하거나 Maven/Gradle을 사용하여 의존성을 관리할 수 있습니다.

예제 1: 간단한 이메일 전송

이 예제는 JSP 페이지에서 간단한 이메일을 보내는 방법을 보여줍니다.

sendEmail.jsp

<%@ page import="java.util.Properties" %>
<%@ page import="javax.mail.*" %>
<%@ page import="javax.mail.internet.InternetAddress" %>
<%@ page import="javax.mail.internet.MimeMessage" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Send Email</title>
</head>
<body>
<%
    String to = "recipient@example.com"; // recipient's email
    String from = "sender@example.com"; // sender's email
    String host = "localhost"; // or specify the SMTP server host

    // Get system properties object
    Properties properties = System.getProperties();

    // Setup mail server properties
    properties.setProperty("mail.smtp.host", host);

    // Get the default Session object
    Session session = Session.getDefaultInstance(properties);

    try {
        // Create a default MimeMessage object
        MimeMessage message = new MimeMessage(session);

        // Set From: header field
        message.setFrom(new InternetAddress(from));

        // Set To: header field
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

        // Set Subject: header field
        message.setSubject("This is the Subject!");

        // Set the actual message
        message.setText("This is the actual message!");

        // Send message
        Transport.send(message);
        out.println("Sent message successfully!");
    } catch (MessagingException mex) {
        mex.printStackTrace();
    }
%>
</body>
</html>

 

예제 2: 이메일에 HTML 콘텐츠와 첨부 파일 보내기

이 예제는 HTML 콘텐츠를 포함하고 파일을 첨부하는 이메일을 보내는 방법을 보여줍니다.

sendEmailWithAttachment.jsp

<!-- Similar imports as the first example -->

<%
    // Similar setup as the first example

    try {
        // Create a default MimeMessage object
        MimeMessage message = new MimeMessage(session);

        // Set From, To, Subject fields
        // ...

        // Create a multipart message for attachment
        Multipart multipart = new MimeMultipart();

        // Create the message part
        BodyPart messageBodyPart = new MimeBodyPart();

        // Set the HTML message
        messageBodyPart.setContent("<h1>This is actual message</h1>", "text/html");
        multipart.addBodyPart(messageBodyPart);

        // Attachment part
        messageBodyPart = new MimeBodyPart();
        String filename = "file.txt";
        DataSource source = new FileDataSource(filename);
        messageBodyPart.setDataHandler(new DataHandler(source));
        messageBodyPart.setFileName(filename);
        multipart.addBodyPart(messageBodyPart);

        // Set the complete message parts
        message.setContent(multipart);

        // Send message
        Transport.send(message);
        out.println("Sent message successfully with attachment!");
    } catch (MessagingException mex) {
        mex.printStackTrace();
    }
%>

관련 전문용어 설명

  • JavaMail API: Java에서 이메일을 보내고 받기 위해 사용되는 API로, 이메일 전송, 수신, 인터넷 메일과 관련된 작업을 할 수 있게 해줍니다.
  • SMTP (Simple Mail Transfer Protocol): 이메일 전송을 위한 표준 프로토콜입니다.
  • MimeMessage: JavaMail API에서 이메일 메시지를 나타내는 클래스입니다.
  • Session: 메일 서버와의 세션을 나타냅니다. SMTP와 관련된 속성과 기타 필요한 설정을 포함합니다.
  • Multipart: 메시지의 여러 부분을 나타내며, 텍스트, HTML, 파일 첨부 등 다양한 유형의 메시지 바디를 구성할 수 있습니다.
반응형