강좌
클라우드/리눅스에 관한 강좌입니다.
프로그램 분류

JavaMail 기본 설치

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

icon01.gif title20.gif

2000-12-07 kenu


JavaMail은 API 가 따로 있다고 합니다. API가 모냐구요? sun 이나 java application을 제공하는 곳에서 그 application에서 사용할 수 있는 함수 등의 문법을 찾기쉽도록 만들어 놓은 문서입니다. java를 잘 하려면 이걸 잘 보면 된다고 합니다. 지금부터 시작할 javamail 또한 API 를 가지고 있습니다.

javamail 설치하는 법은 쉽습니다. JSP 가 돌아가는 환경에서 필요한 것이 2개 있습니다.

JavaBeans Activation Frameworks [다운받기]

JavaMail [다운받기]

'다운받기' 링크한 곳은 각각에 관한 최신의 정보를 볼 수 있습니다. (^^ 물론 영어요. 영어공부 끝이 없슴다. 하지만 영어도 keyword 에 강하면 살 수 있습니다. download 랑 accept 만 잘 공략하셔도 성공하실 겁니다. #.# 퍽! 장난하냐구요. 깨갱~ 계속 나갈께요.)

다운받은 zip파일을 풀어놓습니다. 요즘 alzip이 좋더라구요. www.alzip.com 헤~ 또 곁길...
잠깐 win98 에서 테스트 좀 하고 오겠습니다. linux 에서 한 것을 win98에서 돌리면서 정리하려니까 시간이 좀 많이 걸립니다. 뿅~!

~~~ Long Time....

쨔~안!

테스트에 성공하고 돌아왔습니다. 반갑습니다. (--; 방금 들었습니다. 님의 그 소리, "쇼를 해라. 쇼를..." 말없이 강좌 계속하겠슴다. ^^;;;);
win98 에서 구현하면서 조건이 생겼습니다. win98 에는 NT처럼 SMTP 서비스가 돌지 않기 때문에 메일발송하는 smtp서버를 찾아야 합니다. 예를 들어 저는 두루넷을 사용하니까 smtp.thrunet.com 이 smtp 서버가 됩니다. 여기에 대한 관련문서는 신비로에서 잘 만들었더군요. [관련문서]

그럼 다운받은 것 설치부터 합니다. 각각 압축을 푼 폴더에 activation.jarmail.jar 파일이 있습니다. JavaMail 구현할 때 필요한 것입니다. 이 두 파일을 저는 C:JDK1.3LIB 폴더에 복사하겠습니다. 아무 위치나 상관없습니다. 단 CLASSPATH에 이 두파일의 경로가 제대로 적혀있어야 합니다.
다른 jar 파일은 아직 사용하지 않겠습니다. (사실 아직 저도 잘 모릅니까요. 이름 따라서 기능이 있겠죠. 그래서 열심히 공부를 해야합니다. 자세한 내용은 docs 폴더에 있는 API를 해석해야겠죠. 영어에 대한 부담감이 %팍%팍 오네요.)

도스창을 띄워서 set 이라고 치면 주루룩 환경변수 값들이 나오는데 그중에 CLASSPATH=... 을 보니

CLASSPATH=C:JDK1.3LIBTOOLS.jar

라고 되어있었습니다. 당장 C:AUTOEXEC.BAT 를 열어서

SET CLASSPATH=.;C:JDK1.3LIBTOOLS.jar
SET CLASSPATH=%CLASSPATH%;C:JDK1.3LIBmail.jar;C:JDK1.3LIBactivation.jar

요로콤 고쳐주었습니다. 그리고 윈도를 재부팅했죠. 그리고, 다시 도스창을 띄워서 확인합니다.

set 이라고 치고 난 뒤에,

CLASSPATH=.;C:JDK1.3LIBTOOLS.jar;C:JDK1.3LIBmail.jar;C:JDK1.3LIBactivation.jar

을 확인하시면 됩니다. 그럼 설정은 끝났습니다. 톰캣 시작하고 아파치 서버 돌려주세요. 이제 메일을 보내도록 하겠습니다.

JavaMail-1.2의 demo 에 있는 msgsend.java 파일을 참고해서 만든 jsp 입니다. 적당히 수정해서 사용하시면 됩니다.

msgsend.jsp
<%@ page contentType = "text/html; charset=euc-kr" %>
<%@ page import="java.util.*,java.io.*,javax.mail.*,javax.mail.internet.*,javax.activation.*" %>

<%
String msgText = "This is a message body. Here's the second line. 한글포함";
String msgSubj = "JavaMail 한글 JSP Test3";
msgSubj = new String(msgSubj.getBytes("euc-kr"),"8859_1");

String to = "kenu@okjsp.pe.kr";
String from = "heogn@hotmail.com";
String host = "smtp.thrunet.com";

// create some properties and get the default Session
Properties props = new Properties();
props.put("mail.smtp.host", host);

Session sess = Session.getDefaultInstance(props, null);

try {
// create a message
Message msg = new MimeMessage(sess);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address = {new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(msgSubj);
msg.setSentDate(new Date());
msg.setContent(msgText+host,"text/html; charset=euc-kr"); // HTML 형식
// msg.setText(msgText); // TEXT 형식

Transport.send(msg);
out.println(host+"를 통해 발송했습니다. ^_^");
} catch (MessagingException mex) {
out.println(mex.getMessage()+"<br>");
out.println(host+" 접속에 문제가 생겼네요. 발송하지 못했습니다.");
}

%>

빨간펜으로 적어놓은 (^^ 김혜영씨는 빨간펜을 모르고 자랐데요...퍽~! %) 부분을 잘 보셔야 합니다. 이것을 잘 설정해야 메일이 제대로 가게 됩니다. 다음 강좌에서는 메일 폼을 이용해서 메시지를 보내도록 하죠. 값을 넘기면서 한글이 제대로 보이지 않는 경우도 있습니다. 일단 제 경험적으로 구현해 놓은 소스를 가지고 공부를 하도록 하겠습니다.

수고하셨습니다. 새벽 2시44분이네요. 따라오시느라 수고 많으시네요. 한분한분 게시판에 적어 놓으신 글이나 메일을 보면 보람을 느낍니다. 이 바닥이 또 이런 재미가 있네요. ^^헤헤.

2001-10-16 7:16 오후 추가
Message msg = new MimeMessage(sess); 에서 setSubject() 메소드는 기본인코딩이 "8859_1" 입니다. 따라서 제목의 한글을 그냥 보내면 깨지게 됩니다. "euc-kr" 을 "8859_1" 로 변환시켜준 이유입니다.

 

참고 : http://webdox.co.kr/docs/enterprise/javamail.jsp
http://hometown.weppy.com/hboard/hboard_list.jsp?bbscode=sm0722_2&weppyid=at1014
http://java.sun.com/products/javamail/index.html

kenu: kenu@okjsp.pe.kr
http://okjsp.pe.kr

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  89 명