2014년 1월 24일 금요일

JSP 메일 보내기.

먼저 메일 서버가 구축되어야 합니다. 
다음 포스팅을 참조 하세요.

 James 메일 서버 구축하기.

i
f 모두 다 햇는데 다음과 같은 에러 화면이 뜬다면 100% 메일 서버가 구축이 않되잇는겁니다. -_-
else if 방화벽 포트를 25번 포트를 열어주세요. 그래도 않된다면..A/S 신청을;;;
(javax.servlet.ServletException: Could not connect to SMTP host: localhost, port: 25)
 

메일 서버가 구축이 되었다면 이제 메일 라이블러리를 통해서 간편하게 메일을 전송할수 있는 JSP파일을 만들어봅니다.

 
1. 라이블러리 다운~
   JAF(JavaBeans Activation Framework) 와  JavaMail 이 필요합니다.
   JAF 다운로드 :  http://www.oracle.com/technetwork/java/jaf11-139815.html
 
  javaMail 다운로드 : http://www.oracle.com/technetwork/java/index-138643.html
2. 다운로드 받은 파일들의 압축을 풀면 mail.jar 파일과 activation.jar 파일이 있습니다.
이 파일들을 Tomcat 의  common\lib 폴더로 복사합니다.(사실 어디에 있든 상관은 없지만 Tomcat 의 lib폴더는 서버 시작시 모든 라이블러리를 읽어오기 때문에 이곳에 두는게 가장 간편합니다.)
이클립스에서 해당 파일들을 Build Path를 잡아둡니다.
해당 프로젝트 폴더를 클릭하고 오른쪽 마우스 -> Properties 를 클릭합니다.

3. Java Build Path -> Libaraies -> Add External JARs.. 를 클릭합니다.

4. 복사해둔 폴더에서의 가져올 activation.jar, mail.jar 파일을 클릭하고열기!
 
5. 혹시 모르니 Order and Export 탭 를 선택하고 가져온 라이블러리를 위로 살짝 땡겨 줍니다.(up 버튼을 눌러주면 됩니다.) 참고로 상위단에 있을수록 가장 먼저 참고하게 됩니다.

기본 설정은 끝. 이제 JSP 파일만 작성해 주면 됩니다.
6. SendEmail.jsp

 <%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>

<%@ page import="java.util.*,java.io.*,javax.mail.*,javax.mail.internet.*,javax.activation.*" %>

<%
String subject = request.getParameter("subject")==null?"":request.getParameter("subject");
String content = request.getParameter("content")==null?"":request.getParameter("content");
String from = request.getParameter("from")==null?"":request.getParameter("from"); //보내는 사람
String to = request.getParameter("to")==null?"":request.getParameter("to"); //받는 사람 


 if(from.equals("") || to.equals("") || content.equals("") || subject.equals("")){
     System.out.println("메일 전송 실패");
 }else{
 // 프로퍼티 값 인스턴스 생성과 기본세션(SMTP 서버 호스트 지정)
 Properties props = new Properties();
 Session sess= Session.getDefaultInstance(props, null);
 Message msg = new MimeMessage(sess);
 msg.setFrom(new InternetAddress(from));//보내는 사람 설정
 InternetAddress address = new InternetAddress(to);
 msg.setRecipient(Message.RecipientType.TO, address);//받는 사람설정
 msg.setSubject(subject);//제목 설정
 msg.setSentDate(new java.util.Date());//보내는 날짜 설정
 msg.setContent(content,"text/html;charset=euc-kr"); // 내용 설정 (HTML 형식)
 Transport.send(msg);//메일 보내기
 }
%>


<!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=EUC-KR">
<title>메일 보내기 TEST</title>
</head>
<body>
<form action="sendEmail.jsp">
제목 :        <input type="text" width="20px" name="subject"/><br>
보내는 사람 : <input type="text" width="20px" name="from"/><br>
받는   사람 : <input type="text" width="20px" name="to"/><br>
내용<br>
 <textarea rows="5" cols="30" name="content"></textarea>
  <input type="submit" name="button" value="전송">
</form>
</body>
</html>
 
7. 설치한 mail 서버를 실행한 상태에서 전송 버튼을 눌르셔야 합니다. 아니면 에러가 납니다.
8. 메일이 잘 왔는지 확인~!
 

오호! 잘왔습니다! ㅋㅋ 이제 메일 주소를 잘 넣었는지. 스크립트는 않들어갔는지 등등 파일 전송도 있겠군요. 
여러명에게 전송하는 것도 필요하고요. 메일의 기본적인 걸 만들려면 아직도 멀었네요.
가장 기초적인 전송부분만 제공되는 라이블러리를 통해서 만들어보았습니다.

댓글 없음:

댓글 쓰기