728x90
반응형
본 글은 2017년 7월 19일 08시 32분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다.
JAVA 기반의 SMTP 메일 발송 샘플코드를 기록하는 글이다. JavaMail 이라는 라이브러리를 가져다 쓰자 여기에서(https://javaee.github.io/javamail/) 받을 수 있다. 이 라이브러리는 SMTP와 IMAP, POP3을 지원한다.
개발환경 : JDK 1.8.0_111 x64, Windows 7, Eclipse Mars.1 Release (4.5.1), JavaMail 1.6.0
위에 있는 링크에 가서 javax.mail.jar을 받는다.
그 후 이클립스에 프로젝트를 생성하고 SMTP 클래스를 생성한 후 외부라이브러리를 위와 같이 추가한다.
반응형
package example;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Date;
import java.util.Properties;
public class SMTP {
public static void main(String[] args) {
Properties p = System.getProperties();
p.put("mail.smtp.starttls.enable", "true");
p.put("mail.smtp.host", "smtp.naver.com");
p.put("mail.smtp.auth", "true");
p.put("mail.smtp.port", "587");
Authenticator auth = new MyAuthentication();
Session session = Session.getDefaultInstance(p, auth);
MimeMessage msg = new MimeMessage(session);
try {
msg.setSentDate(new Date());
InternetAddress from = new InternetAddress();
from = new InternetAddress("sender<sender@naver.com>");
msg.setFrom(from);
InternetAddress to = new InternetAddress("receiver@naver.com");
msg.setRecipient(Message.RecipientType.TO, to);
msg.setSubject("title", "UTF-8");
msg.setText("content", "UTF-8");
msg.setHeader("content-Type", "text/html");
javax.mail.Transport.send(msg);
} catch (AddressException addr_e){
addr_e.printStackTrace();
} catch (MessagingException msg_e){
msg_e.printStackTrace();
}
}
}
class MyAuthentication extends Authenticator {
PasswordAuthentication account;
public MyAuthentication(){
String id = "id";
String pw = "pw";
account = new PasswordAuthentication(id, pw);
}
public PasswordAuthentication getPasswordAuthentication(){
return account;
}
}
SMTP 클래스의 소스코드에 위의 소스코드를 붙여넣는다.
네이버메일에 가서 로그인하고 위와 같이 SMTP를 사용함으로 변경한 후 노란색 체크된 것들을 확인한다. 그리고 소스코드의 id와 pw, from, to의 값을 자신에게 맞게 적절하게 수정하고 실행하면 위와 같이 메일이 정상적으로 발송된 것을 확인할 수 있다.
728x90
반응형
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] 표준 출력 사용하기 println(), print(), printf() (0) | 2022.08.31 |
---|---|
자바 프로그래밍 학습을 위해 자바와 이클립스를 설치하자 (0) | 2022.07.01 |
윈도우에 OpenJDK 14를 설치하자 (0) | 2022.06.25 |
자바 프로그래밍이란? (0) | 2020.12.05 |
'이것만 알면 누구나 하는 자바 프로그래밍' 프로젝트 개요와 현황 (0) | 2020.08.13 |
댓글