Java/Tip & Tech2009. 6. 18. 16:36

자바에서 이메일 발송을 구현하기 위해서는
Java Mail 라이브러리와 JAF(JavaBeans Activation Framework) 라이브러리를 추가해주어야 한다.

Java Mail 다운로드 바로가기 >> http://java.sun.com/products/javamail/downloads/index.html
JAF 다운로드 바로가기 >> http://java.sun.com/javase/technologies/desktop/javabeans/jaf/downloads/index.html


import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;

public class TestEmailSender {
	private static final String emailHost = "smtp.gmail.com";
	private static final String emailId = "Gmail 계정";
	private static final String emailPw = "Gmail 비밀번호";

	public void sendEmail(String from, String to, String subject, String content) {
		Properties props = new Properties();
		props.put("mail.smtp.starttls.enable", "true");
		props.put("mail.smtp.host", emailHost);
		props.put("mail.smtp.auth", "true");

		EmailAuthenticator authenticator = new EmailAuthenticator(emailId, emailPw);

		Session session = Session.getInstance(props, authenticator);

		try {
			Message msg = new MimeMessage(session);
			msg.setFrom(new InternetAddress(from));
			msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));

			msg.setSubject(subject);
			msg.setContent(content, "text/html; charset=EUC-KR");
			msg.setSentDate(new Date());

			Transport.send(msg);
		} catch (MessagingException e) {
			e.printStackTrace();
		}
	}

	class EmailAuthenticator extends Authenticator {
		private String id;
		private String pw;

		public EmailAuthenticator(String id, String pw) {
			this.id = id;
			this.pw = pw;
		}

		protected PasswordAuthentication getPasswordAuthentication() {
			return new PasswordAuthentication(id, pw);
		}
	}

	public static void main(String[] args) {
		String subject = "Gmail을 통한 Java Email 발송 테스트";
		String content = "Gmail을 통한 Java Email 발송 테스트입니다.";
		String from = "보내는 이메일 주소";
		String to = "받을 이메일 주소1,받을 이메일 주소2";
		// 받을 이메일 주소는 반드시 ","로 구분해준다.

		new TestEmailSender().sendEmail(from, to, subject, content);
	}
}

Posted by Huikyun