본문 바로가기

IT/Java

org.apache.commons.email 라이브러리를 활용한 메일 발송 기능.


프로젝트 진행 중 메일발송 기능을 만져볼 기회가 있었다.

이전 다른 프로젝트에서 메일발송을 구현했던 선배님께 조언을 구해

아파치 커먼즈에서 지원하는 메일 라이브러리를 통해 구현하게 되었다.


기본적으로 org.apache.commons.mail.Email 익명클래스를 상속받아

SimpleEmail, MultipartEmail, HtmlEmail 등의 클래스를 구현하게 된다.

(HtmlEmail클래스의 경우는 정확히는 MultipartEmail클래스를 상속받음)


파일첨부메일의 경우 org.apache.commons.mail.EmailAttatchment클래스를 별도로 구현하여

MultipartEmail클래스를 .send()메서드로 발송 직전 .attatch()메서드로 붙여주면 됨.


SimpleEmail의 경우 실제로 쓸지를 잘 모르겠고 -_-

어차피 MultipartEmail은 이를 상속한 HtmlEmail에 포함되어 있으므로 

프로젝트에서 구현했던 HtmlEmail의 코드만 기록해둔다.


 HtmlEmail email = new HtmlEmail();


 email.setHostName( HostName );

 email.setSmtpPort( SmtpPortNumber );

 email.setCharset( EncodingCharacterSet );

 email.addTo( RecieverEmailAddress , RecieverName );

 email.setFrom( SenderEmailAddress , SenderName );

 email.setSubject( EmailSubject );

 email.setHtmlMsg( EmailContentInHtmlForm );


 email.send();

무척 간단하다. HtmlEmail객체를 생성해 값을 할당한 후, .send()메서드를 호출해주면 그대로 메일이 발송된다.

프로젝트의 경우 고정할 수 있는 인자들은 Spring의 MessageSource를 통해 properties파일에서 참조했다.


후일 파일첨부메일 기능을 구현할 때 다음 페이지를 참고하자.

Spring 3.0 프로그래밍의 저자 최범균님의 블로그 포스트.

http://javacan.tistory.com/107