예전에 Go언어로 메일을 보내는 코드를 작성해 활용한 적이 있었는데, Java로도 가능하다. 당연히! 사용한 라이브러리는 JavaMail이고 이번에 사용한 버전은 1.6.2이다.
전체 코드는 다음과 같다.
package sendMail; import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class MainEntry { static final String FROM = "GOODMAN@geoservice.co.kr"; static final String FROMNAME = "지오서비스"; static final String TO = "heyMan@naver.com"; static final String SMTP_USERNAME = "GOODMAN@geoservice.co.kr"; static final String SMTP_PASSWORD = "****"; static final String HOST = "smtp.live.com"; static final int PORT = 25; static final String SUBJECT = "메일 제목"; static final String BODY = String.join( System.getProperty("line.separator"), "메일 내용
", "이 메일은 아름다운 사람이 보낸 아름다운 메일입니다!
." ); public static void main(String[] args) throws Exception { Properties props = System.getProperties(); props.put("mail.transport.protocol", "smtp"); props.put("mail.smtp.port", PORT); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.auth", "true"); Session session = Session.getDefaultInstance(props); MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(FROM, FROMNAME)); msg.setRecipient(Message.RecipientType.TO, new InternetAddress(TO)); msg.setSubject(SUBJECT); msg.setContent(BODY, "text/html;charset=euc-kr"); Transport transport = session.getTransport(); try { System.out.println("Sending..."); transport.connect(HOST, SMTP_USERNAME, SMTP_PASSWORD); transport.sendMessage(msg, msg.getAllRecipients()); System.out.println("Email sent!"); } catch (Exception ex) { ex.printStackTrace(); } finally { transport.close(); } } }
실행해 보고, 메일이 왔나 가밨더니 아래처럼 와있더라.. 북치고 장구치고~ ^^