|
* 강좌를 시작하기전에.....
본강좌는 sun.net.smtp.SmtpClient 를 이용하여 메일을 전송하는 방법에 대해서 다룹니다.
JavaMail은 다루지 않습니다.
* JSP에서의 메일 전송
일반적으로 JSP에서 메일 전송을 위해서 사용되는 API는 JavaMail 입니다. 그러나 JavaMail은 API를 따로 설치해야 해야 하는 부담감이 있기도합니다. SmtpClient를 이용하게 되면 별도의 API설치 없이 빠르고 간편하게 메일을 전송 하실수가 있습니다. 하지만 SmtpClient는 JavaMail 이 나오기 전에 사용되었던 것이기 때문에 되도록으면 JavaMail을 사용하실 것을 권하여 드리는 바이며, 프로그램 구성상 간단한 텍스를 전송하는 경우나 JavaMail API를 사용할 수 없는 상황에서 SmtpClient를 사용하실 것을 권장해 드립니다.
* SmtpClient
SmtpClient는 sun.net.smtp.SmtpClient 로 정의 되어 있으나 그에 해당하는 API문서는 찾아 볼수가 없었습니다. 하지만.. 아무런 문제가 없이 import 되어 집니다... API문서에서는 찾을수 없지만.. 분명히 존재하는 API... 좀 이상 하긴 하지만.. 톰캣 3.x, 4.x 에서 분명히 잘 사용되어 집니다. 혹시라도 SmtpClient의 API 문서를 찾으신 분께서는 알려주시기 바랍니다.
간단한 예제로 한번에 설명을 끝내도록 하겠습니다.
|
SmtpClient 예제
|
<%@ page contentType="text/html;charset="UTF-8" import="sun.net.smtp.SmtpClient, java.io.*" %>
<%
subject=new String(subject.getBytes("UTF-8"),"8859_1");
contents=new String(contents.getBytes("UTF-8"),"8859_1");
SmtpClient sm=new SmtpClient("mail.aboutjsp.com");
sm.from("hsboy@orgio.net");
sm.to("받을사람Email");
PrintStream msg=sm.startMessage();
msg.print("To: ");
msg.println("받을사람Email");
msg.print("Subject: ");
msg.println(subject);
msg.println("MIME-Version: 1.0 ");
msg.println("Content-Type : text/html;charset=\"UTF-8\"");
msg.println("Content-Transfer-Encoding: 8bit ");
msg.println(contents);
sm.closeServer();
%>
|
우선 subject 와 contents는 String 타입으로 이미 선언이 되어 있는 상태에서 E-mail 에서 한글을 사용할수 있게 하기 위해서 8859_1 로 한글을 인코딩하고 있습니다. 다음에 에는 SmtpClient 객체를 생성하면서 생성자에 사용할 smtp 서버주소를 넣어 줍니다. 그다음으로 보내는 사람과 받는 사람의 e-mail 주소를 설정합니다. 그다음으로 메일의 본문을 작성하기 위해서 PrintStream 객체를 생성 합니다.
마지막으로 closeServer() 메소드를 이용하여 메일을 전송한후 서버와의 연결을 끊게 됩니다. 또한 이때 새성된 SmtpClient, PrintStream의 객체는 모두 사라집니다.
|