import java.util.Properties;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import mgood.domain.User;
public class SMTPUtil{
private final static String ACCOUNT = mgood.common.util.Properties.getProperty("Globals.emailAccount");
private final static String PASSWORD = mgood.common.util.Properties.getProperty("Globals.emailPassword");
// 메일보내기 - 회원가입시 자동발송 용 (Gmail smtp)
public Boolean sendMail(User domain) throws Exception {
boolean chkBoolean = true;
Properties p = new Properties();
// 보내는사람 메일 주소(Gmail용)
p.put("mail.smtp.user", ACCOUNT); // Google계정@gmail.com으로 설정
p.put("mail.smtp.host", "smtp.gmail.com");
p.put("mail.smtp.port", "465");
p.put("mail.smtp.starttls.enable","true");
p.put("mail.smtp.auth", "true");
p.put("mail.smtp.debug", "true");
p.put("mail.smtp.socketFactory.port", "465");
p.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
p.put("mail.smtp.socketFactory.fallback", "false");
try {
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getInstance(p, auth);
session.setDebug(true); // 메일을 전송할 때 상세한 상황을 콘솔에 출력한다.
MimeMessage msg = new MimeMessage(session);
String message = "1231223312132123312";
msg.setSubject("내용"); //제목
Address fromAddr = new InternetAddress(ACCOUNT); // 보내는 사람의 메일주소
msg.setFrom(fromAddr);
Address toAddr = new InternetAddress(domain.getUserEml()); // 받는 사람의 메일주소
msg.addRecipient(Message.RecipientType.TO, toAddr);
msg.setContent(message, "text/html;charset=UTF-8");
Transport.send(msg);
} catch (Exception mex) {
mex.printStackTrace();
chkBoolean = false;
}
return chkBoolean;
}
private static class SMTPAuthenticator extends Authenticator {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(ACCOUNT, PASSWORD);
}
}
}
DEBUG SMTP: AUTH LOGIN failed 에러시
https://www.google.com/settings/security/lesssecureapps
보안 수준이 낮은 앱의 액세스 - > 사용으로 바꿔준다.
jdk 1.8 사용시 오류남 1.7 부터 사용가능함
메이븐추가
javax.mail
mail
1.4
org.jsoup
jsoup
1.7.2