Java언어와 SMTP를 이용하여 메일을 발송하는 예제입니다.
네이버 메일 설정
1. 내 메일함 설정으로 들어갑니다.
2. POP3/IMAP 설정으로 들어갑니다.
3. IMAP/SMTP 설정으로 들어갑니다.
4. IMAP/SMTP 사용을 사용함으로 변경합니다.
5. 변경한 설정을 적용합니다.
6. SMTP 요청을 전송할 정보임으로 확인해주세요
pom.xml
<!-- mail(SMTP) -->
<dependency>
<groupId>org.simplejavamail</groupId>
<artifactId>simple-java-mail</artifactId>
<version>6.0.4</version>
</dependency>
저장소에서 원하시는 버전의 의존성 패키지를 선택해서 프로젝트에 불러와주세요.
소스
public class MailUtil {
/** 메일 HOST **/
private static final String HOST = "smtp.naver.com";
/** 메일 PORT **/
private static final String PORT = "587";
/** 메일 ID **/
private static final String MAIL_ID = "발송인@naver.com";
/** 메일 PW **/
private static final String MAIL_PW = "발송인PW";
public static void sendNotiMail(String subejct, String body) {
try {
InternetAddress[] receiverList = new InternetAddress[2];
receiverList[0] = new InternetAddress("수신인1@tistory.com");
receiverList[1] = new InternetAddress("수신인2@tistory.com");
// SMTP 발송 Properties 설정
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.host", MailUtil.HOST);
props.put("mail.smtp.port", MailUtil.PORT);
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.ssl.trust", MailUtil.HOST);
props.put("mail.smtp.auth", "true");
// SMTP Session 생성
Session mailSession = Session.getDefaultInstance(props, new javax.mail.Authenticator(){
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(MailUtil.MAIL_ID, MailUtil.MAIL_PW);
}
});
// Mail 조립
Message mimeMessage = new MimeMessage(mailSession);
mimeMessage.setFrom(new InternetAddress(MailUtil.MAIL_ID));
mimeMessage.setRecipients(Message.RecipientType.TO, receiverList);
// 메일 제목
mimeMessage.setSubject(subejct);
// 메일 본문 (.setText를 사용하면 단순 텍스트 전달 가능)
mimeMessage.setContent(body, "text/html; charset=UTF-8");
// Mail 발송
Transport.send(mimeMessage);
} catch(Exception e) {
Logger.getLogger(MailUtil.class).error("메일 발송 오류!!");
}
}
위의 소스는 HTML형식으로 메일을 발송합니다. 다른 메서드를 이용하면 단순 텍스트도 보낼 수 있습니다.
결과
지정한 ID로 전송된 메일을 수신하였습니다.
'프로그래밍 > Web.' 카테고리의 다른 글
[JavaScript] Google 사이트번역 API 사용법 (1) | 2020.08.05 |
---|---|
[JAVA] 내부 클래스가 컴파일되면? (1) | 2020.07.08 |
[JSTL] <c:set /> 사용법 (0) | 2020.04.21 |
[JAVA] FindBugs 오류처리 (0) | 2020.03.30 |
[Web Security] Web Browser XSS Protection Not Enabled (0) | 2020.03.23 |
댓글