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

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

 
JavaMail 기본설치 -사용예제
조회 : 3,517  



2000-12-09 kenu


JavaMail 에는 여러 기능이 있다고 생각됩니다. *.jar 파일 보면 imap도 있고, smtp도 있고, pop3도 있는데, 5개의 javamail class 중에서 오직 mail.jar 만 사용한 거 아니겠습니까. 왜냐구요? 이유는 하나, 초보니까. 퍽! 윽. 그래도 초보는 초보다........ 그래도 열심히 해야죠. 그래서인가?

javamail 에 대해서 더 깊이 들어가진 않겠습니다. 아주 단순한 폼메일 하나 구현하고 javamail은 일단락 짓고 싶네요. 갈길이 멀어서요. 물론 javamail의 고수가 되서 저의 무공을 자랑하고 싶은 황당한 생각도 있지만 강호에 있는 자바 비급들이 무수히 많고, 지금도 새로운 기술들이 퍼붓듯 쏟아지고 있기 때문에, 겸허한 자세로 내공을 높이는 것이 초보의 나아갈 길입니다.

이쯤에서 잠깐 천기누설을 하죠. 모냐구요? jsp를 아주 잘하는 법이죠. 그것도 빨리...

궁금하시죠... 헤헤~ 폭로하겠습니다. JAVA 를 잘 하시면 됩니다. #쿵야~ 퍽! 으악~ 내 다리~

당연한 말을 하냐구요? JAVA 에 대한 기초문법이 튼튼하고 객체에 대해서 잘 이해하고 계신다면, JSP 는 축지법을 쓰는 사람처럼 빨리 사용할 수 있습니다. 특히 ASP를 다룬 저같은 경우는 JSP에서 현재 시간 표현하는 것도 버벅거리고, 문자열 가운데 single quotation (') 을 두 개 연속 single quotations('')으로 대치하는 것도 몰라서 한참을 헤매는 일이 다반사였습니다.

솔직히 저도 SCJP 자격증을 따고, 취직하는 데는 요긴하게 썼지만 취직한 후에 컴퓨터나 수리하고, 회사에서 상사나 분위기나 살피고, 서버나 관리하고 하면서 1년반이라는 시간을 JAVA를 쓰지 않다보니 많은 부분을 다시 복습하고 있는 실정입니다. 애구~ 말이 길어졌네.... 죄송함다.... 그냥 넋두리였슴다.

예제는 파일이 2개입니다. 하나는 입력받는 페이지, 두번째는 처리하는 페이지. 간단하죠? 예쁘게 꾸미는 것은 직접해 보세요.

그럼 첫번째 소스. javamail.htm 와 javamailsend.jsp 입니다. [소스받기]

javamail.htm

<table width=300 border=1 cellspacing=0 style="font-size:9pt">
<form name="f" method="post" action="javamailsend.jsp">
<tr><td width=120 align="right">보내는분골뱅이 <td width=180>
<input type="text" name="from">
<tr><td align="right">받는 분 골뱅이 <td>
<input type="text" name="to" value="heogn@popsmail.com">
<tr><td align="right">이메일 제목 <td>
<input type="text" name="title"">
<tr align="center"><td colspan=2><TextArea name="content" cols="35" rows="10"></textarea>
<tr align="center"><td colspan=2><input type="submit" value="메일전송"></td></tr>
</form>
</table>

전달하는 변수 name 은 대소문자 구분합니다. 주의하세요.

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

<%! // 함수 선언할 때는 ! 붙여줍니다.
public String kr(String s) {
try {
s = (s == null) ? "" : new String(s.getBytes("8859_1"),"KSC5601");
} catch (java.io.UnsupportedEncodingException uee) {}
return s;
}
%>
<html><head><title>메일전송결과</title>

<%
// 사용자가 입력한 메일 전송 자료를 저장
String mailFrom = null;
String mailTo = null;
String title = null;
String contents = null;
String htmltag = null;

// Resin 일 경우 kr을 뺍니다. 한글변환을 하지 않습니다.
// 톰캣일 경우 소스 그대로 사용합니다. 한글변환 필요합니다.
mailFrom = kr(request.getParameter("from"));
mailTo = kr(request.getParameter("to"));
title = kr(request.getParameter("title"));
contents = kr(request.getParameter("content"));

htmltag = "<font color=BLUE size=2>";

contents = htmltag + contents;

// Session을 생성하기 위해 java.util.Properties 클래스를
// 생성하고 자신이 해당하는 SMTP 호스트 주소를 할당합니다.
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.thrunet.com");

// 기본 Session을 생성하고 할당합니다.
Session msgSession = Session.getDefaultInstance(props, null);
%>
</head>
<body bgcolor="#D0E0FF">
<center>
<%
try {

// Message 클래스의 객체를 Session을 이용해 생성합니다.
MimeMessage msg = new MimeMessage(msgSession);
InternetAddress from = new InternetAddress(mailFrom);
msg.setFrom(from);

InternetAddress to = new InternetAddress(mailTo);
msg.setRecipient(Message.RecipientType.TO, to);

msg.setSubject(title);

msg.setContent(contents, "text/html; charset=EUC-KR");

Transport.send(msg);

%>
축하합니다. 요청하신 메일 전송이 완료되었습니다.<br>
좋은 하루 되세요.<br>
<a href="http://jspstudy.zoa.to">to jspstudy.zoa.to</a>
<%
}
catch (MessagingException e) {
out.println(e.getMessage());
%>
<center>죄송합니다. 메일 전송이 실패하였습니다.<br>
관리자에게 문의하세요.<br>
<a href="#" onClick="history.back()">돌아가기</a>
<% } %>
</center></body></html>

 

길게 설명하지 않아도 될 것 같습니다. 소스가 아주 평이하거든요. 중간중간에 있는 프로그램들의 기능을 잘 보시기 바랍니다. 이해고 뭐고 평이한 소스라...

애구 졸려... 오늘은 이만하겠습니다. 다음은 jdbc 강좌를 준비하겠습니다. 수고하셨습니다. 눈꺼풀 거~ 되게 무겁넹!

 

참고 : http://www.jspschool.com

kenu: heogn@shinbiro.com
http://okjsp.pe.kr


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


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

 
(주) 수퍼유저

 
   
 


『신개념 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
펴낸곳(주)수퍼유저

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