: MimeMessageHelper.addInline() 메서드를 사용하면 메일 내용에 이미지나 파일 등을 삽입할 수 있다.
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);
}
}
}
--> 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"));