[01] 자바 메일 보내기
- 문의 메일 보내기, 쇼핑몰에 상품 구매 후에 구매완료되었습니다등
자바코드를 이용해서 메일을 보낸다.
- 메일 서버(POP3/SMTP) 구축후, 메일 라이브러리를 통해서
간편하게 메일을 전송할수 있는 JSP파일을 작성한다.
별도로 메일 서버는 구축하지 않고 카페24 메일 서버를 활용할 예정.
- 카페24 유료 회원이면 카페24에서 제공하는 메일 서버를 계정 인증후의 3개까지 사용할 수 있다.(유료전환)
http://www.cafe24.com -> 나의 서비스 관리 -> 이메일계정 추가/삭제
- 카페24 메일 서버 주소 (POP3/SMTP서버): mw-002.cafe24.com
- 카페24 메일 서버 인증
- JAF(JavaBeans Activation Framework)와 JavaMail 라이브러리가 필요
1) JAF 다운로드 jaf-1_1_1.zip -> activation.jar
https://www.oracle.com/java/technologies/java-archive-downloads-java-plat-downloads.html
2) javaMail 다운로드 javamail1_4_7.zip -> mail.jar
https://www.oracle.com/java/technologies/java-archive-eepla-downloads.html
JavaMail 1.5 -> http://www.oracle.com/technetwork/java/index-138643.html
3) mail.jar와 activation.jar 를 /WEB-INF/lib/폴더에 복사
[02] 자바에서 메일 보내기
- 메일서버 인증받은 계정과 비밀번호 관련한 클래스 생성
----------------------------- MyAuthenticator.java
package net.utility;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public class MyAuthenticator extends Authenticator {
//사용하고자 하는 메일서버에서 인증받은 계정/비번
private PasswordAuthentication pa;
public MyAuthenticator() {
pa = new PasswordAuthentication("계정 아이디", "비밀번호");
}
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return this.pa;
}
}//class end
- 폴더생성: WebContent/mail
----------------------------------------------mailForm.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>문의 메일 보내기</title>
</head>
<body>
* 문의 메일 보내기 *<br/><br/>
<form name='mailForm' method='post' action="./mailProc.jsp">
<table border="1" align="center">
<tr>
<th bgcolor='silver'>받는 사람</th>
<td><input type="text" name="to" size="30"></td>
</tr>
<tr>
<th bgcolor="silver">보내는 사람</th>
<td><input type="text" name="from" size="30"></td>
</tr>
<tr>
<th bgcolor='silver'>제 목</th>
<td><input type="text" name="subject" size="30"></td>
</tr>
<tr>
<th bgcolor='silver'>편지 내용</th>
<td><textarea name="msgText" rows="10" cols="50"></textarea></td>
</tr>
</table>
<div align="center">
<input type="submit" value="보내기">
<input type="reset" value="취소">
</div>
</form>
</body>
</html>
---------------------------------------------- mailProc.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page import="java.util.*"%>
<%@ page import="net.utility.*"%>
<%@ page import="javax.mail.*"%>
<%@ page import="javax.mail.internet.*"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>문의 메일 보내기</title>
</head>
<body>
<p>* 메일 보내기 결과 *</p>
<%
//1) 카페24 메일서버 POP3/SMTP서버
String mailServer = "mw-002.cafe24.com";
Properties props = new Properties();
props.put("mail.smtp.host", mailServer);
props.put("mail.smtp.auth", "true");
//2) 메일서버에서 인증받은 계정 및 비번
Authenticator myAuth = new MyAuthenticator();
//3) 1)과 2)를 검사
Session sess = Session.getInstance(props, myAuth);
//out.print("메일 서버 인증 성공");
//4) 메일보내기
try {
request.setCharacterEncoding("UTF-8");
String to = request.getParameter("to").trim();
String from = request.getParameter("from").trim();
String subject = request.getParameter("subject").trim();
String msgText = request.getParameter("msgText").trim();
msgText = Utility.convertChar(msgText); //특수문자 및 엔터 변경
//받는사람
InternetAddress[] address = { new InternetAddress(to) };
/*
수신인 여러명
InternetAddress[] address = { new InternetAddress(to1),
new InternetAddress(to2),
new InternetAddress(to3)
};
*/
Message msg = new MimeMessage(sess);
msg.setRecipients(Message.RecipientType.TO, address); //받는사람
msg.setFrom(new InternetAddress(from)); //보내는 사람
msg.setSubject(subject); //메일 제목
msg.setContent(msgText, "text/html; charset=UTF-8"); //메일 내용
msg.setSentDate(new Date()); //보낸 날짜
Transport.send(msg); //전송
out.print(to+"님에게 메일발송");
}catch(Exception e) {
out.print("메일전송 실패!!");
}
%>
</body>
</html>
[03] 메일 본문 내용 편집 및 이미지 출력하기
- mailProc.jsp에서 본문 내용에 해당하는 msgText변수를 아래와 같이 편집한다
---------------------------------------------- mailProc.jsp
<%
//1) 테이블 및 기타 HTML 태그도 사용 가능하다.
String msgText=request.getParameter("msgText").trim();//내용
msgText=msgText.replace("\n", "<br/>");
msgText="<strong>"+msgText+"</strong>";
msgText+="<br/>";
msgText+="<table border='1'>";
msgText+="<tr>";
msgText+=" <th>주문상품</th>";
msgText+=" <th>주문금액</th>";
msgText+="</tr>";
msgText+="<tr>";
msgText+=" <td>사과</td>";
msgText+=" <td>10,000원</td>";
msgText+="</tr>";
msgText+="</table>";
msgText+="<br/><br/>";
//2) 메일 내용에 이미지를 출력하기
//String root=request.getContextPath();
msgText+="<img src='주소'>";
//out.print(msgText);
%>
'⁂ JSP > : 기본 익히기' 카테고리의 다른 글
[JSP] #11-1 MVC 모델 2를 알아보자 > EL/JSTL의 초석! (0) | 2022.10.26 |
---|---|
[JSP] #10 파일 업로드 (0) | 2022.10.20 |
[JSP] #8 쿠키 클래스 (0) | 2022.10.18 |
[JSP] #7 SCOPE- JSP의 내장객체와 내부변수 (0) | 2022.10.17 |
[JSP] #6 웹어플리케이션의 구조 (0) | 2022.10.11 |