이메일을 전송하는 작업은 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, 파일 첨부 등 다양한 유형의 메시지 바디를 구성할 수 있습니다.
'jsp' 카테고리의 다른 글
Ajax 요청 처리: Ajax를 사용하여 비동기 요청을 처리하는 JSP 예제. (0) | 2023.12.25 |
---|---|
파일 다운로드: 웹 페이지에서 파일을 다운로드하는 방법을 다루는 예제. (0) | 2023.12.25 |
데이터 검색 및 페이징: 데이터베이스에서 데이터를 검색하고 페이징 처리하는 방법을 배우는 예제. (0) | 2023.12.25 |
이미지 업로드: 웹 페이지에서 이미지를 업로드하고 표시하는 방법을 다루는 예제. (0) | 2023.12.25 |
이미지 표시: JSP 페이지에서 이미지를 표시하는 방법을 배우는 예제. (0) | 2023.12.25 |