본문 바로가기

etc

JavaMail 1.4.4 + SpringSource Mail Sender

반응형
JavaMail APi 1.4.4이 January 21, 2011 날짜로 업데이트 되었습니다.

사이트는
http://www.oracle.com/technetwork/java/index-138643.html 이곳 입니다.

업데이트 내역은 아래와 같습니다.
    - Ability to cache POP3 messages on disk.
    - In-memory POP3 message cache now uses soft references.
    - NTLM authentication support is now integrated, no longer need jcifs.jar.
    - SASL authentication support for SMTP.
    - New demo classes showing how to handle old non-MIME Outlook messages.
 
 
일이 생겨서 MIME parser 를 보는데 open된 라이브러리가 많더라구요. Junit 테스트도 가능한 것도 많구요.

소스파일을 다운받고 eclipse에서 불러들이면 다음과 같은 화면이 됩니다.
여기서 demo 중 msgshow를 실행시켜보고자 합니다.


 

편의상 이메일 원본 파일을 aa.txt으로 하여 해당 폴더에 추가합니다.
그림에 demo폴더에 넣은건 무시하시고, 프로젝트 기본 디렉토리로 추가시키면 됩니다.




원본 파일은 base64로 인코딩 된 것으로 아이폰과 회사메일로 주고받은 첨부파일이 없고 그냥 텍스트 메일입니다.

실행하는 방식은 2가지가 있는데요,  smtp서버 주소를 입력하거나 직접 메세지 파일을 로딩시키는 것입니다.

이클립스 Run 설정에서 argument에는 다음과 같이 적으면 base64로 인코딩된 걸 변환하여 실행창에 보여줍니다.

"-m -f aa.txt"

결과는 다음과 같습니다.

This is the message envelope

---------------------------

FROM: Sumin Lim <icarus0118@gmail.com>

REPLY TO: Sumin Lim <icarus0118@gmail.com>

TO: Sumin Lim <sumin.lim@nhn.com>

SUBJECT: Re: P

SendDate: Thu Mar 31 19:19:38 KST 2011

FLAGS: 

X-Mailer NOT available

CONTENT-TYPE: multipart/alternative; boundary=bcaec517a9ae407f7b049fc4a369

This is a Multipart

---------------------------

CONTENT-TYPE: text/plain; charset=UTF-8

This is plain text

---------------------------

789


2011/3/31 Sumin Lim <sumin.lim@nhn.com>


> 456

>

> 나의 iPhone에서 보냄

>

> 2011. 3. 31. 오후 7:18 Sumin Lim <icarus0118@gmail.com> 작성:

>

> > 123

> >

> > 나의 iPhone에서 보냄

>

>

>


CONTENT-TYPE: text/html; charset=UTF-8

This is a string

---------------------------

789<br><br><div class="gmail_quote">2011/3/31 Sumin Lim <span dir="ltr">&lt;<a href="mailto:sumin.lim@nhn.com">sumin.lim@nhn.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">


456<br>

<br>

나의 iPhone에서 보냄<br>

<br>

2011. 3. 31. 오후 7:18 Sumin Lim &lt;<a href="mailto:icarus0118@gmail.com">icarus0118@gmail.com</a>&gt; 작성:<br>

<br>

&gt; 123<br>

&gt;<br>

&gt; 나의 iPhone에서 보냄<br>

<br>

<br>

</blockquote></div><br>




그 다음으로는 SpringSource MVC버전은 3.0이상에서 메일센더를 동작해봅니다.

사용설명서는 http://static.springsource.org/spring/docs/3.0.x/reference/mail.html 이곳에 있습니다.

저는 이것에서 고객을 대상으로 SMTP를 이용한 메일 보내고자 아래와 같은 예제를 만들었습니다.
커스토머 객체에 있는 사람들의 주문을 완료할 때 메일을 보내기 위한 예제로 보시면 될것 같네요.

테스트 용이라 순차적으로 되어있습니다.
주의할 점은 아래와 같습니다.

1. applicationContext.xml 설정을 하거나 아래와 같이 Pros 객체에 옵션을 잘 지정합니다.
한동안 smtp프로토콜을 사용할 수 없다고 나와서 헤멨었는데요, 반드시 starttls와 auth는 true로 세팅합니다.

2. 필요한 .jar 파일들을 모두 라이브러리에 포함시킵니다.
javax.mail 라이브러리를 받으시면 jar파일이 많은데요. 메이븐으로 컴파일을 하더라도 필요한 라이브러리는 직접 추가시켜주셔야 합니다. 안하면 이상하게 smtp 프로토콜을 못쓰겠다는 에러가 나오더라구요.
디펜던시 추가는 아래와 같습니다.

<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.4</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1</version>
</dependency>
 


반응형

'etc' 카테고리의 다른 글

인생성공과 행복의 열쇠 삶의 8진법  (0) 2011.04.06
연구와 회사일의 차이  (0) 2011.04.04
mobile jquery  (0) 2011.03.29
구글은 테스트를 어떻게하는가 1  (0) 2011.03.29
구글은 테스트를 어떻게하는가 2  (0) 2011.03.29