JAKARTAPROJECT
JAKARTA TIPJSP TIPJSP 질문&답변DATABASE TIPJAVASCRIPT TIPWEBHACKING TIP기타 TIP
자카르타 프로젝트
자카르타 프로젝트
자카르타 프로젝트 팁 게시판 입니다
Commons-Email~
GoodBug
이미지 슬라이더 보기

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. 샘플 소스

 

간단히 텍스트만 보내기

SimpleEmail email = new SimpleEmail();
email.setHostName("mail.myserver.com");
email.addTo("jdoe@somewhere.org", "John Doe");
email.setFrom("me@apache.org", "Me");
email.setSubject("Test message");
email.setMsg("This is a simple test of commons-email");
email.send();

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() 함수로 전송합니다

 

파일 첨부하기

// 첨부할 attachment 정보를 생성합니다
EmailAttachment attachment = new EmailAttachment();
attachment.setPath("mypictures/john.jpg");
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("Picture of John");
attachment.setName("John");

// 기본 메일 정보를 생성합니다

MultiPartEmail email = new MultiPartEmail();
email.setHostName("mail.myserver.com");
email.addTo("jdoe@somewhere.org", "John Doe");
email.setFrom("me@apache.org", "Me");
email.setSubject("The picture");
email.setMsg("Here is the picture you wanted");

// 생성한 attachment를 추가합니다
email.attach(attachment);

// 메일을 전송합니다
email.send();

첨부파일과 같이 보낼려면 EmailAttachment 를 생성하여 파일 정보를 입력해 줍니다

파일경로와 파일형태, 파일 설명등을 추가하며 마지막으로 setName(java.lang.String name)을 통해 첨부되는 파일명을 설정합니다

그 후 MultiPartEmail 을 통해 SimpleEmail 처럼 기본 메일정보를 설정합니다

마지막으로 MultiPartEmail의 attach() 함수를 통해 첨부 파일을 추가하여 전송합니다

만약 첨부파일이 두개 이상이라면 EmailAttachment 를 여러개 생성하여 파일 정보를 설정 한 후 attach()를 통해 추가해 주기만 하면 됩니다

 

URL을 통해 첨부하기

// 첨부할 URL정보 및 파일 기본 정보를 설정합니다
EmailAttachment attachment = new EmailAttachment();
attachment.setURL(new URL("http://www.apache.org/images/asf_logo_wide.gif"));
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("Apache logo");
attachment.setName("Apache logo");

// 기본 메일 정보를 생성합니다
MultiPartEmail email = new MultiPartEmail();
email.setHostName("mail.myserver.com");
email.addTo("jdoe@somewhere.org", "John Doe");
email.setFrom("me@apache.org", "Me");
email.setSubject("The logo");
email.setMsg("Here is Apache's logo");

// attachment를 추가합니다
email.attach(attachment);

// 메일을 전송합니다
email.send();

파일 경로 정보를 setURL(java.net.URL) 으로 설정할 뿐 위의 첨부파일과 동일합니다

 

HTML 이메일 보내기

// 기본 메일 정보를 생성합니다
HtmlEmail email = new HtmlEmail();
email.setHostName("mail.myserver.com");
email.addTo("jdoe@somewhere.org", "John Doe");
email.setFrom("me@apache.org", "Me");
email.setSubject("Test email with inline image");

// 삽입할 이미지와 그 Content Id를 설정합니다
URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
String cid = email.embed(url, "Apache logo");

// HTML 메세지를 설정합니다

email.setHtmlMsg("<html>The apache logo - <img src=\"cid:"+cid+"\"></html>");

// HTML 이메일을 지원하지 않는 클라이언트라면 다음 메세지를 뿌려웁니다
email.setTextMsg("Your email client does not support HTML messages");

// 메일을 전송합니다
email.send();

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 

=============================================

2005-10-14 09:48:51
211.189.124.***

 

좋은생각 ^^

첨부파일 (총 1개)
  1. 2005-10-13 PM 08_37_19.jpg 40.35 KB (107 다운로드)
7점 (3명)
덧글 7개 | 태그 2개 | 관련글보기
태그입력
쉽표(,)구분으로 한번에 여러 태그를 입력할수 있습니다
Email (1) commons (16)
나그네
(0) (0)
유용한 자료 감사합니다
59.25.180.*** 2005-10-25 15:06:57
GoodBug
(0) (0)
email.setCharset("euc-kr");을 Email 객체를 생성하자마자 실행하면 한글문제도 없어요.. from http://www.javaservice.net/~java/bbs/read.cgi?m=jdbc&b=javamail&c=r_p&n=1130805044&p=1&s=t#1130805044
211.189.124.*** 2005-11-01 16:59:20
권남
(0) (0)
잘 정리된 문서 감사합니다. 더불어 한글 파일명의 파일을 첨부할 경우 attachment.setName(new String("한글 파일명.jpg".getBytes("euc-kr"), "latin1"); http://kwon37xi.egloos.com/1909157 추신: 파이어폭스에서는 memo 버튼이 안나오는군요... ㅜㅜ
222.112.180.*** 2005-11-07 16:05:54
준용
(0) (0)
권남씨 벌써 올리셨네용.. ㅎㅎ Jakarta Commons Email 사용법이 깔끔하게 정리 되어 있어.. 도움 많이 되었습니다..
222.112.180.*** 2005-11-07 16:42:47
GoodBug
(0) (0)
좋은정보 감사합니다 ^^
211.189.124.*** 2005-11-07 18:49:06
초보
(0) (0)
우아~~~ 이렇게 깔끔하게 정리가 되있다니.... 결국 여기와서 찾네요... 감사~~ ^^
211.196.188.*** 2006-04-15 10:02:12
굿~
(0) (0)
인증처리 DefaultAuthenticator 클래스 생성 어떻게 하나요.. 초보라서
220.71.189.*** 2006-07-07 15:55:30
이름 비밀번호
자카르타 프로젝트
자카르타 프로젝트 팁 게시판 입니다
! 번호 제목 글쓴이 일자 조회
Hierarchy of the Apache Software Foundation GoodBug 2005-10-14 10,740
Jakarta Project 강좌 게시판입니다 8 GoodBug 2005-04-03 11,613
44 Log4J log4j에서 e.printStackTrace() 메시지를 log에 남기는 방법 1 kaiser 2008-10-22 17,547
43 DBUtils DBUtils에서 Clob 사용하기 3 1 GoodBug 2007-08-28 10,568
42 Spring Spring 설정 파일 로딩 1 GoodBug 2007-07-16 11,252
41 POI POI의 HSLF를 이용하여 PowerPoint 문서를 읽어보자 2 GoodBug 2007-05-28 14,836
40 POI POI의 HWPF를 이용하여 MS WORD문서를 읽어보자 2 GoodBug 2007-05-28 16,757
39 Validator Validator 속성들 1 GoodBug 2007-05-11 10,328
38 dd Commons-Fileupload 1.2 1 2 GoodBug 2007-04-23 15,266
37 Apache Apache2 + Tomcat5.5 + mod_jk 4 바이러스天国 2007-01-29 10,969
36 DBUtils DBUtils에서 number 타입의 컬럼이 int형으로 안넘어올때.. 3 1 GoodBug 2006-06-28 10,678
35 흠흠 위험한 static Logger 필드... 2 1 서연아빠 2006-03-16 10,051
34 Installing Tomcat with commons-daemon (jsvc) GoodBug 2006-01-08 9,005
33 commons Commons DbUtils 몇가지 예제 3 2 GoodBug 2005-11-17 15,123
32 commons Jakarta Commons Net 에서 FTP 사용시 목록이 안보일 경우 2 GoodBug 2005-11-15 21,698
31 listFiles() 에서 null 을 반환 추적.. 신만두 2008-11-11 11,770
30 commons 목록이 안보일 경우 해결기 I탄 1 2 GoodBug 2005-12-23 15,858
29 POI POI로 엑셀파일 읽을때, Invalid header signature 에러 1 GoodBug 2005-11-12 16,467
28 log4j log4j, JSP에서 원하는 Appender 골라쓰기 1 GoodBug 2005-11-07 13,825
commons Commons-Email~ 7 2 GoodBug 2005-10-13 17,786
copyright 2005-2017 by Unicorn