//'String consultTitle , String htmlDesc' mailSender메소스 들어오기전 title(제목)과 content(내용)을 넘겨준다.
public static void mailSender(String consultTitle , String htmlDesc) throws AddressException, MessagingException, IOException {
String senderId = EgovProperties.getProperty("mail.senderId");
String host = EgovProperties.getProperty("mail.host");
String port = EgovProperties.getProperty("mail.port");
String addressee = EgovProperties.getProperty("mail.addressee");
try {
Properties props = new Properties();
//SMTP 서버정보설정
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", port);
props.put("mail.smtp.starttls.enable", "true");
//SMTP 서버정보를 session에 담는다.
Session session = Session.getInstance(props);
//보내는 메일
InternetAddress fromAddress = new InternetAddress(senderId);
//MimeMessage 선언
MimeMessage message = new MimeMessage(session);
//보내는 메일
message.setFrom(fromAddress);
// 내용 인코딩이 UTF-8일 떄 아래처럼 제목 인코딩도 'MimeUtility.encodeText(consultTitle, "UTF-8", "B")' 이렇게 선언해 줘야한다.
// ex) message.setSubject(MimeUtility.encodeText(consultTitle, "UTF-8", "B"));
// 위처럼 'MimeUtility.encodeText()'를 사용하면 catch에 'UnsupportedEncodingException eME'도 선언해줘야한다.
// ex) catch (MessagingException | UnsupportedEncodingException eME)
// 제목
message.setSubject(consultTitle);
//내용 ," 내용 인코딩 "
message.setContent(htmlDesc, " text/html; charset=euc-kr");
//본문이 html일 경우
//또는
//base64이미지 일경우 Header에 add 해줘야한다.
message.addHeader("Content-Transfer-Encoding", "base64");
//받는 메일
InternetAddress toAddress = new InternetAddress(addressee);
message.addRecipient(Message.RecipientType.TO, toAddress);
//위에 정보를 담은 message를 Transport.send()로 메일보낸다.
Transport.send(message);
}
catch (MessagingException eME)
{
Logger.error("MessagingException=[{}] - [{}][{}]", eME.getMessage(), host, port);
}
}