japanese site
온라인강좌책메일다운로드동아리쇼핑기술지원기업정보갤러리동영상 블로그
『신개념 4단계 리눅스기술지원 시스템 공개』

※ 『무료 리눅스 배포판 배송서비스』 ※

 
JavaMail 기본 설치
조회 : 3,176  


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


[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=627


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
(주) 수퍼유저

 
   
 


『신개념 4단계 리눅스기술지원 시스템 공개』

CentOS 리눅스 전문서적 국내최초출시

 
회사소개 | 보도기사 | 채용안내 | 광고안내 | 이용약관 | 개인정보취급방침 | 책임한계와 법적고지 | 불편사항 신고하기 | 사이트맵
ㅇ 서울 : 서울특별시 강남구 노현로79길 66, 402호(역삼동,청송빌딩)  ㅇ 부산 : 부산광역시 해운대구 우동 1470 에이스하이테크21 914호
ㅇ 대표 : 1544-8128 ㅇ부산직통 : 051-744-0077 ㅇ서울직통 : 02-856-0055 ㅇ FAX : 02-6280-2663
ㅇ 사업자번호 : 128-86-68239 ㅇ 통신판매업 신고번호 : 2013-부산금정-0035호 ㅇ 개인정보책임자 : 이재석
ㅇ 상호명 : (주) 수퍼유저 ㅇ 대표자 : 박성수
Copyright ⓒ (주)수퍼유저. All rights reserved.

 아 이 디
 비밀번호
회원 가입 | 비밀번호 찾기

블로그~
 
▷ 웹개발언어
PHP
JSP
python
기타
책제목
리눅스서버관리실무바이블v3.0


저자 박성수
페이지수 2,032 pages
펴낸곳(주)수퍼유저

리눅스 서버 구축 및 관리에 필요한 거의 모든 부분과 전반적인 실무 기법들을 다루고 있음
책제목
리눅스보안관리실무(2/E)


저자홍석범
페이지수 820 pages
펴낸곳(주)수퍼유저

리눅스 보안에 관련된 내용을 종합적으로 쓴 책. 저자의 명성 그대로 보안관련의 모든 내용이 그대로 담겨져 있다.