
✅ 메일서버
- POP / IMAP : 프로토콜을 통해 메일을 받아서 사서함을 볼 수 있는 방법 (POP3를 더 많이 봄)
① POP (= MOVE) :
② IMAP (= COPY) :
⬇️ 오라클 - [mail.zip] 다운 [ JavaMail API 1.4.3 ]
: 메일을 주고받을 때 사용하는 프로토콜



[프로토콜] 따로따로 가지고있는것

[프로토콜] 통채로 가지고있는 것

✅ 톰캣 lib에 드래그해서 프로토콜 사용하기

⬇️ 오라클 - [jaf-1_1_1.zip] 다운
:
JavaBeans Activation Framework 1.1 Download
:파일 첨부가 가능하게 하는 라이브러리



✅ 드래그해서 라이브러리 사용하기

⬇️ 아파치 - 메일서버 다운


✅ 메일서버 사용방법

⭐ 에뮬레이터[메일서버] 실행되는지 확인
: 항상 띄워놔야 함!!

메일 서버 포트 기억해두자!
: DB의 기본포트 : 8080

✏️ Test1.
💻 입력
폴더/파일 만들기

<%@ page contentType="text/html; charset=UTF-8"%>
Mime = text/html Session


✉️ 메일 보내보면 전송
:가상 이메일 검색



⬇️ sendMail.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri = "http://java.sun.com/jsp/jstl/core" %>
<%
request.setCharacterEncoding("UTF-8");
String cp = request.getContextPath();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="sendMail_ok.jsp" method="post">
<table border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>보내는 사람 이름
</td>
<td>
<input type="text" name="senderName" size="50">
</td>
</tr>
<tr>
<td>보내는 사람 E-Mail
</td>
<td>
<input type="text" name="senderEmail" size="50">
</td>
</tr>
<tr>
<td>받는 사람 E-Mail
</td>
<td>
<input type="text" name="receiverEmail" size="50">
</td>
</tr>
<tr>
<td>제목
</td>
<td>
<input type="text" name="subject" size="50">
</td>
</tr>
<tr>
<td>내용
</td>
<td>
<textarea rows="8" cols="50" name="content"></textarea>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="메일보내기"/>
</td>
</tr>
</table>
</form>
</body>
</html>
⬇️ sendMail_ok.jsp
<%@page import="javax.mail.Transport"%>
<%@page import="javax.mail.internet.InternetAddress"%>
<%@page import="javax.mail.Message"%>
<%@page import="javax.mail.internet.MimeMessage"%>
<%@page import="javax.mail.Session"%>
<%@page import="java.util.Properties"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
request.setCharacterEncoding("UTF-8");
String cp = request.getContextPath();
String senderName = request.getParameter("senderName");
String senderEmail = request.getParameter("senderEmail");
String receiverEmail = request.getParameter("receiverEmail");
String subject = request.getParameter("subject");
String content = request.getParameter("content");
String host = "localhost";
//javax.mail.Session은 Java Mail API를 사용하는 출발점이 되는 클래스
//javax.mail.Message 클래스는 메일을 표현하기 위해 사용되는 추상 클래스로
//주제, 수신자의 이메일주소, 발송자의 이메일 주소, 보낸 날짜와 같은
//실제 이메일 메시지의 세부 사항을 나타낸다
//MimeMessage 클래스는 Message 추상 클래스로부터 상속받은 인터넷 메일 클래스로
//메일에 여러 개의 파일을 첨부시켜서 사용 (Multipurpose Internet Mail Extensions)
//java.util.Properties는 getProperties()메소드를 사용하여 시스템의 환경변수 값을
//얻어올 수 있다. 환경변수의 설정은 Key와 Value 쌍으로 저장되어 있다.
//JavaMail API를 이용하여 메일을 전송하는 과정
//1.javax.mail.Session 클래스의 인스턴스를 구한다.
//2.javax.mail.Message 클래스를 사용하여 전송하고자 하는 메일 메시지를 작성한다.
//3.javax.mail.Transport 클래스를 사용하여 작성한 메일을 전송한다.
Properties prop = System.getProperties();
Session ssn = Session.getInstance(prop,null);
try{
MimeMessage message = new MimeMessage(ssn);
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(receiverEmail));
message.setFrom(new InternetAddress(senderEmail,senderName,"UTF-8"));
message.setSubject(subject, "UTF-8");
//content에 내용만 해서 보내게 되면 -> 그 사용자가 메일을 받게 되고,
//메일을 받았을때 get방식의 그 콘텐츠를 클릭하면 됨
message.setContent(content, "text/plain;charset=UTF-8");
Transport tp = ssn.getTransport("smtp");
tp.connect(host,"","");//ip,id,pw
tp.sendMessage(message, message.getAllRecipients());
tp.close();
out.print("메일 전송 완료!!");
}catch(Exception e){
System.out.print(e.toString());
}
%>
✏️ Test2.
💻 입력
파일/폴더 생성 (java)

js / css드래그

파일 첨부시 무조건 붙여야함 (enctype)

파일첨부
:input- type :file

⬇️ mailSend_ok.jsp
파일업로드

메일 전송

⬇️ MailSend.java // = DTO


⬇️ mailSend.jsp
보내는 작업


✉️메일 잘 전송되는거 확인


delete를 주석처리하면 파일이 남게 됨

활용하는 법 (content)