PHP에서는 PHPMailer라는 프로그램을 이용해서 메일을 쉽게 다양한 서버 메일서버로 보낼수가 있었습니다.
Java로 프로그램을 작성하다가 로그는 log4j를 이용해서 파일로 저장을 하면 되겠지만, 특정 이벤트가 일어날 경우에는 운영자에게 메일로 통보하는 기능을 만들려고 하다가 검색한 것이 JavaMail API 입니다.
정말 다양한 기능을 제공하고 있으며, 샘플 프로그램으로 메일클라이언트, 웹메일등등 다양하게 공개가 되어 있습니다.
http://www.oracle.com/technetwork/java/index-138643.html
샘플 프로그램을 구해서 보면 쉽게 되겠지만, 아래와 같이 Properties 클래스에 메일 서버의 설정값을 넣어서 Session 클래스를 만들어서 사용을 하면 됩니다. gmail 과 같은 공개 메일서버들은 TLS/SSL, 아이디, 패스워드 인증을 사용합니다. 직접구현을 할려면 신경을 좀 써야 하겠지만, 아래와 같이 쉽게 설정으로 해결이 가능합니다.
Properties props = System.getProperties();
props.put("mail.smtp.host", dnsagent.MailHost);
props.put("mail.smtp.auth", "true");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(dnsagent.AuthId, dnsagent.AuthPw);
}
}
);
if (dnsagent.debug==true) { session.setDebug(true); } |
그리고 나면 아래와 같이 Message를 만들어서 SMTP서버로 전송을 하면 메일이 발송이 됩니다.
Message msg = new MimeMessage(session);
.......
Transport.send(msg); |
쉽게 개발이 가능하며, 다만 500k 정도의 mail.jar 파일만 첨부하여 사용하면 됩니다.