Jakarta Commons Email
I. Commons-Email
2005년 9월 27일 드디어 Commons-Email이 version 1.0이 배포되었습니다
Commons-Email은 Java Mail API를 근간으로 좀더 심플하게 메일을 보내는 방안을 제시합니다.
기능상으로는 첨부파일 뿐만 아니라 HTML Email도 쉽게 보낼수 있는 API를 제공합니다
II. Download!
Commons-Email을 사용하기 위해서는 JavaMail의 mail.jar와 JAF의 activation.jar 가 필요합니다
Commons-Email download
http://jakarta.apache.org/site/downloads/downloads_commons-email.cgi
JavaMail 1.3
http://java.sun.com/products/javamail/downloads/index.html
JAF 1.0.2
http://java.sun.com/products/javabeans/glasgow/jaf.html
Commons-Email
http://jakarta.apache.org/commons/email/index.html
Commons-Email API
http://jakarta.apache.org/commons/email/apidocs/index.html
III. Install
다운 받은 3개의 파일을 $tomcat_home/webapps/ROOT/WEB-INF/lib/ 밑에 복사합니다
IV. 샘플 소스
① 간단히 텍스트만 보내기
org.apache.commons.mail.SimpleEmail 은 가장 중심이 되는 org.apache.commons.mail.Email을 상속받아 setMsg(java.lang.String msg)만을 구현한 가장 기본적인 클래스입니다.
setHostName(java.lang.String aHostName)으로 SMTP 서버를 지정하고,
addTo(java.lang.String email) or addTo(java.lang.String email, java.lang.String name)으로 받는 사람의 메일주소를, setFrom(java.lang.String email) or setFrom(java.lang.String email, java.lang.String name)으로 보내는 사람의 메일을 설정합니다
물론 addTo 함수의 추가로 여러 사람에게 메일을 보낼 수 있습니다.
가장 기본적인 setSubject(java.lang.String subject)와 setMsg(java.lang.String msg)로 메일 제목과 내용을 입력한 후 send() 함수로 전송합니다
② 파일 첨부하기
첨부파일과 같이 보낼려면 EmailAttachment 를 생성하여 파일 정보를 입력해 줍니다
파일경로와 파일형태, 파일 설명등을 추가하며 마지막으로 setName(java.lang.String name)을 통해 첨부되는 파일명을 설정합니다
그 후 MultiPartEmail 을 통해 SimpleEmail 처럼 기본 메일정보를 설정합니다
마지막으로 MultiPartEmail의 attach() 함수를 통해 첨부 파일을 추가하여 전송합니다
만약 첨부파일이 두개 이상이라면 EmailAttachment 를 여러개 생성하여 파일 정보를 설정 한 후 attach()를 통해 추가해 주기만 하면 됩니다
③ URL을 통해 첨부하기
파일 경로 정보를 setURL(java.net.URL) 으로 설정할 뿐 위의 첨부파일과 동일합니다
④ HTML 이메일 보내기
HtmlEmail 클래스는 setHtmlMsg()로 작성된 html을 보낼 수 있습니다
이미지 처리가 조금 까탈스럽네요
V. 인증처리
만약 SMTP 서버가 인증을 요구한다면 org.apache.commons.mail.Email 의 setAuthentication(java.lang.String username, java.lang.String password)를 통해 해결할 수 있습니다
이 함수는 JavaMail API의 DefaultAuthenticator 클래스를 생성하여 사용합니다
=============================================
본문서는 자유롭게 배포/복사 할수 있지만
이문서의 저자에 대한 언급을 삭제하시면 안됩니다
저자 : GoodBug (unicorn@jakartaproject.com)
최초 : http://www.jakartaproject.com
=============================================