예전에 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();
        }
    }
}
실행해 보고, 메일이 왔나 가밨더니 아래처럼 와있더라.. 북치고 장구치고~ ^^


