본문 바로가기

web/JSP

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. 메일이 잘 왔는지 확인~!
 


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