자바로 메일 보내기..
우선 mail.jar 파일이 필요하다.
https://mvnrepository.com/artifact/javax.mail/mail
메이븐 사이트에서 중간에 버전을 클릭하고 들어가서 Download 링크를 클릭하여 다운받는다.
자바 소스를 코딩한다.
import java.util.Properties;
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;
public class Main {
public static void main(String[] args) {
String mailProtocol = "smtp";
String mailHost = "smtp.gmail.com";
String mailPort = "587";
String mailId = "abc@gmail.com"; // 구글계정
String mailPassword = "abc"; // 구글계정 비밀번호
String fromName = "보내는사람이름";
String fromEmail = "abc@gmail.com"; // 보내는 사람 메일
String toName = "받는사람이름";
String toEmail = "abc@daum.net"; // 받는사람메일
String mailTitle = "메일 타이틀입니다.";
String mailContents = "메일 내용입니다.";
String debugMode = "false";
String authMode = "true";
try {
boolean debug = Boolean.valueOf(debugMode).booleanValue();
Properties mailProps = new Properties();
mailProps.put("mail.smtp.starttls.enable", "true");
mailProps.setProperty("mail.transport.protocol", mailProtocol);
mailProps.put("mail.debug", debugMode);
mailProps.put("mail.smtp.host", mailHost);
mailProps.put("mail.smtp.port", mailPort);
mailProps.put("mail.smtp.connectiontimeout", "5000");
mailProps.put("mail.smtp.timeout", "5000");
mailProps.put("mail.smtp.auth", authMode);
Session msgSession = null;
if(authMode.equals("true")) {
Authenticator auth = new MyAuthentication(mailId, mailPassword);
msgSession = Session.getInstance(mailProps, auth);
} else {
msgSession = Session.getInstance(mailProps, null);
}
msgSession.setDebug(debug);
MimeMessage msg = new MimeMessage(msgSession);
msg.setFrom(new InternetAddress(fromEmail, fromName));
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(toEmail, toName));
msg.setSubject(mailTitle);
msg.setContent(mailContents, "text/html; charset=euc-kr");
// 스태틱함수로 직접 보내지 않고 객체를 이용해서 보내고 객체를 닫아준다.
Transport t = msgSession.getTransport(mailProtocol);
try {
t.connect();
t.sendMessage(msg, msg.getAllRecipients());
} finally {
t.close();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
class MyAuthentication extends Authenticator {
PasswordAuthentication pa;
public MyAuthentication(String mailId, String mailPass) {
pa = new PasswordAuthentication(mailId, mailPass);
}
public PasswordAuthentication getPasswordAuthentication() {
return pa;
}
}
'Java' 카테고리의 다른 글
스프링 프로젝트 생성 후 샘플 코드 한글 깨짐 현상 (0) | 2017.09.18 |
---|---|
Java was started but returned exit code=13 - 이클립스 실행시 에러 (0) | 2017.08.25 |
스프링 JSP에서 표현식으로 현재 경로 및 contextPath 가져오기 (0) | 2017.08.09 |
전자정부프레임워크 sql 쿼리 로그 찍기 (0) | 2017.08.08 |
이클립스 Data Source Explorer 사용하기 - 전자정부프레임워크 (0) | 2017.08.04 |