'메일전송'에 해당되는 글 1건

  1. [2008/01/04] 메일전송 - Jakarta Project Common-Email API 사용

메일전송 - Jakarta Project Common-Email API 사용

[작렬허접코딩/자바]

출처 : 자바서비스넷

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/download ··· mail.cgi

JavaMail 1.3
http://java.sun.com/products/javamail/d ··· dex.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 ··· .htmliii. 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 클래스를 생성하여 사용합니다


from http://www.jakartaproject.com/article/j ··· 06202560

==================================================
mail : unicorn@jakartaproject.com
home : http://www.jakartaproject.com
제목 : Re: 한글문제...
글쓴이: 권남~(kwon37xi) 2005/11/01 09:30:44 조회수:1390 줄수:3
email.setCharset("euc-kr");을 Email 객체를 생성하자마자 실행하면 한글문제도 없어요..

http://kwon37xi.egloos.com
제목 : Re: 인증처리..
글쓴이: 박재원(guest) 2006/06/27 21:14:42 조회수:795 줄수:5
인증처리는 그냥 아래처럼 작성해 주면 되는데..
위에 설명하신 부분은 좀 어렵게 느껴지네요..

  email.setAuthentication(userid,password);
 
제목 : Re: hotmail에서의 한글 깨짐현상...
글쓴이: 손님(guest) 2007/12/18 20:13:36 조회수:164 줄수:6
hotmail에서 보내는 이 에 한글이름을 넣으면 깨지는데..
다음이나 파란등 기타 한국 메일에서는 안깨지구요...

어떤 인코딩 타입을 적용해 봐도 소용이 없네용..

방법이 없나요??

이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/01/04 11:25 2008/01/04 11:25