CAFE

Integration

Email - 인라인 자원(이미지, 파일 등) 추가

작성자황정식|작성시간12.05.15|조회수2,082 목록 댓글 0

: MimeMessageHelper.addInline() 메서드를 사용하면 메일 내용에 이미지나 파일 등을 삽입할 수 있다.


==== SimpleExceptionNotifier.java ====

package egovframework.rte.service.mail.serviceImpl;


import javax.activation.FileDataSource;

import javax.annotation.Resource;

import javax.mail.MessagingException;

import javax.mail.internet.MimeMessage;


import org.apache.log4j.Logger;

import org.springframework.mail.javamail.JavaMailSender;

import org.springframework.mail.javamail.MimeMessageHelper;


import egovframework.rte.service.mail.serviceItf.EmailNotifier;


public class SimpleExceptionNotifier implements EmailNotifier

{

@Resource(name="mailSender")

private JavaMailSender mailSender;

protected Logger logger = Logger.getLogger(this.getClass());

@Override

public void sendEmail(Exception ex) throws MessagingException

{

String errorMessage = ex.toString();

String htmlContent = "<img src='cid:logo'/>" + "<br/>" + 

"에러메시지: <span style='color:blue;font-weight:bold;'>" + errorMessage + "</span>";

String[] receiver = {"xxxxx@xxxx.co.kr", "xxxx@ecgxxxx.co.kr", "xxxxx@naver.com"};

MimeMessage message = mailSender.createMimeMessage();

MimeMessageHelper helper = new MimeMessageHelper(message, true); // 첨부파일을 첨부한다면 true로 설정한다.

helper.setSubject("두번째 메일 테스트");

helper.setText(htmlContent, true);             // html 컨텐트로 설정하기 위해 true로 설정한다.

helper.setFrom("system@xxxx.co.kr");

helper.setTo(receiver);

helper.addInline("logo", new FileDataSource("C:/Users/hjs6877/Desktop/images/aaa.jpg"));

try{

mailSender.send(message);

}catch(Exception e){

logger.fatal("메일 전송 에러발생!!", e);

}

}


}


--> 위 코드에서 html 스트링을 보면 <img src='cid:logo'/>에서 이와 같이 하면 링크를 걸어서 이미지를 표시하는게 아니라 

이메일 내에 이미지를 포함할 수 있다. 


--> addInline() 메서드를 이용해서 자원을 첨부할 수 있는데 FileDataSource 클래스를 이용하여 자원을 메일에 첨부할 수 있다.

--> File 클래스를 이용해서 자원을 메일에 첨부할 수도 있다.

helper.addInline("logo",  new File("C:/Users/hjs6877/Desktop/images/ecg.jpg") );


--> FileSystemResource 클래스를 이용해서 자원을 메일에 첨부할 수도 있다.

helper.addInline("logo", new FileSystemResource("C:/Users/hjs6877/Desktop/images/aaa.jpg"));



--> ClassPathResource 클래스를 이용해서 클래스패스내의 자원을 메일에 첨부할 수도 있다.

helper.addInline("logo", new ClassPathResource("/egovframework/rte/service/mail/aaa.jpg"));


다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼