폼메일 예제

31437 
Created at 2006-12-22 13:22:09 
221   0   0   0  

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



Tags: mail mimemessage smtp Share on Facebook Share on X

◀ PREVIOUS
include 집중해부
▶ NEXT
textbox의 입력문자 제어하기(영문/한글)
  Comments 0
Login for comment
SIMILAR POSTS

csv 파일을 이용한 메일링 리스트 구현 (created at 2006-12-22)

소켓으로 메일보내기 (created at 2007-01-30)

구글 메일(GMail)로 메일 발송하기 (created at 2006-10-10)


OTHER POSTS IN THE SAME CATEGORY

간단히 WIN32에서 MFC의 메모리 누수 체크하는 방법 (created at 2006-12-27)

VC++ 6.0 에서 GDI+ 사용하기.. (created at 2006-12-27)

GDI+를 이용한 회전 3가지.... (created at 2006-12-27)

MFC의 GDI/GDI+ 리소스 누수 현상 (created at 2006-12-27)

JSP 페이지 이동 4가지 방법 및 특성 (created at 2006-12-26)

기념일계산,날짜계산해서....^^; 앤에게 사랑받으시길..... (created at 2006-12-22)

자바스크립트로 만든 빙고 게임 (created at 2006-12-22)

현재달의 첫째날 , 마지막날 (날짜,일자) 구하기 (created at 2006-12-22)

JPG 저장된 DB 이미지 JSP로 보여주기 (created at 2006-12-22)

스크립트 디버거 (created at 2006-12-22)

수많은 체크박스 중 몇개 체크했는지 확인 (created at 2006-12-22)

가상디스크 만들기 (created at 2006-12-22)

RSS 수집당하는 법 (created at 2006-12-22)

프린팅 하기(IE 전용) (created at 2006-12-22)

textbox의 입력문자 제어하기(영문/한글) (created at 2006-12-22)

include 집중해부 (created at 2006-12-22)

한글 처리 (created at 2006-12-22)

브라우져 캐시(cache) 안먹게 하는 비기 (created at 2006-12-22)

csv 파일을 이용한 메일링 리스트 구현 (created at 2006-12-22)

오라클8i 글자수 무제한 게시판소스 (created at 2006-12-22)

동적 이미지(실시간 그래프) 생성하기 (created at 2006-12-22)

UTF-8로 파일 저장하기 (created at 2006-12-22)

발신전용 메일서버 만드는 방법 (created at 2006-12-21)

구글 검색시 순위 올리기 (created at 2006-12-18)

사이트 트래픽의 주범 웹봇 차단하기 - robots.txt (created at 2006-12-18)

Internet Explorer의 검색창에서 한글 입력이 안될때 (created at 2006-11-24)

프린터 인쇄 취소가 안될때 (created at 2006-11-24)

spoolsv.exe의 문제 cpu점유률 100% (created at 2006-11-24)

http-2.2.3에서 ssl 설치 (created at 2006-11-24)

초간단 php-oracle 연동 클래스 (created at 2006-11-24)

UPDATES

글루코사민 vs. 콘드로이친: 무엇이 더 나은 관절 건강 보조제일까? (created at 2024-04-22)

광주 5·18 민주화운동 알린 테리 앤더슨 前 AP 기자 (created at 2024-04-22)

햄과 소세지가 우리 몸에 일으키는 부작용 (updated at 2024-04-22)

콘드로이친의 염증 감소효과 (updated at 2024-04-22)

코사민 DS - 글루코사민+콘드로이친 복합물이 함유된 퇴행성 관절 건강보조제 (updated at 2024-04-22)

삼겹살 먹을때 환상조합 (created at 2024-04-22)

일본 여중생의 특이한 취향 (created at 2024-04-22)

우리가 먹는 약물이 바꿔버린 생태계 (created at 2024-04-21)

일본에서 그린 상상속의 사무직과 현실속의 사무직 (updated at 2024-04-21)

북한 미대생들이 그린 북한 최고존엄 김정은 (created at 2024-04-21)

입사 후 1년도 되지 않은 회사에서 구조조정에 의한 퇴직 불응에 따른 해고 처리시 대응 가능한 방법 (updated at 2024-04-20)

한고은님의 옛날 사진 (updated at 2024-04-20)

소녀대 - Bye Bye Girl (updated at 2024-04-13)

대한민국 날씨 근황 (created at 2024-04-13)

성일종 인재육성 강조하며 이토 히로부미 언급 - 인재 키운 선례? (updated at 2024-04-13)

일제강점기가 더 살기 좋았을지도 모른다는 조수연 국민의힘 후보 - 친일파? (updated at 2024-04-13)

Marshall Ha님의 샤오미 SU7 시승기 - 테슬라의 일론 머스크님이 긴장할만한 느낌 (updated at 2024-04-09)

윙크하는 귀염둥이 반려견들 (created at 2024-04-08)

달콤 살벌한 고백 (created at 2024-04-08)

북한 최정예 공수부대 훈련 모습 (updated at 2024-04-02)

맛있었던 친구 어머니의 주먹밥이 먹고 싶어요 (created at 2024-04-02)

자리 마음에 안든다고 6급 공무원 패는 농협 조합장 (created at 2024-03-26)

85세 딸 짜장면 사주는 102세 어머니 (created at 2024-03-26)

1990년대 감각파 도둑 (created at 2024-03-26)

치매에 걸린 69살의 브루스 윌리스가 전부인 데미무어를 보고 한 말 (updated at 2024-03-22)

경제는 대통령이 살리는 것이 아닙니다 라던 윤석열대통령 - 상황 안좋아지자 여러 전략을 펼쳤지만, 부작용 속출했던 2024년의 봄 (updated at 2024-03-13)

극빈의 생활을 하고 배운것이 없는 사람은 자유가 뭔지도 모를 뿐 아니라 왜 개인에게 필요한지에 대한 필요성을 못느낀다는 윤석열 대통령 (updated at 2024-03-08)

조선일보를 안본다는 사람들이 말하는 그 이유 - 천황폐하, 전두환 각하, 김일성 장군 만세? (created at 2024-03-07)

광폭타이어를 장착하면 성능이 좋아질거라는 착각 (updated at 2024-03-03)

면허시험장에서 면허갱신하면 하루만에 끝나나? (updated at 2024-03-03)