반응형
javax.mail 라이브러리
자바에서 구글 이메일을 보내는 방법에는 여러 가지가 있지만,
그중에서 가장 간단하게 구현할 수 있는 방법은 javax.mail 라이브러리를 사용하는 것입니다.
이 라이브러리를 사용하기 위해서는 우선 메일 서버의 호스트 이름과 포트 번호, 계정 정보 등을 설정해야 합니다.
이후에는 메일을 보낼 때 필요한 정보를 설정한 후, 메일을 보내는 코드를 작성하면 됩니다.
아래는 javax.mail 라이브러리를 사용하여 구글 이메일을 보내는 코드입니다.
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
public class EmailSender {
public static void main(String[] args) throws Exception {
String to = "받는사람@gmail.com"; // 받는 사람의 이메일 주소
String from = "보내는사람@gmail.com"; // 보내는 사람의 이메일 주소
String password = "보내는사람의 비밀번호"; // 보내는 사람의 이메일 계정 비밀번호
String host = "smtp.gmail.com"; // 구글 메일 서버 호스트 이름
// SMTP 프로토콜 설정
Properties props = new Properties();
props.setProperty("mail.smtp.host", host);
props.setProperty("mail.smtp.port", "587");
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.starttls.enable", "true");
// 보내는 사람 계정 정보 설정
Session session = Session.getInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(from, password);
}
});
// 메일 내용 작성
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
msg.setSubject("메일 제목");
msg.setText("메일 내용");
// 메일 보내기
Transport.send(msg);
}
}
<코드 1>
<코드 1>에서는 구글 SMTP 서버를 사용하여 이메일을 보내기 위해, 호스트 이름으로 "smtp.gmail.com"을 사용하고,
포트 번호로 "587"을 사용하도록 설정했습니다.
이메일을 보내기 위해서는 구글 이메일 계정의 이메일 주소와 비밀번호를 입력해야 하며
이메일의 내용은 Message 객체를 통해 설정할 수 있습니다.
만약 이메일 전송 중에 예외가 발생한다면, MailException 예외가 발생합니다.
이 예외를 처리하기 위해서는 try-catch 문을 사용하면 됩니다.
실제 구동 및 확인
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
public class EmailSender2 {
public static void main(String[] args) throws Exception {
String to = "wjrmffldgl@naver.com"; // 받는 사람의 이메일 주소
String from = "wjrmffldglem@gmail.com"; // 보내는 사람의 이메일 주소
String password = "********"; // 보내는 사람의 이메일 계정 비밀번호
String host = "smtp.gmail.com"; // 구글 메일 서버 호스트 이름
// SMTP 프로토콜 설정
Properties props = new Properties();
props.setProperty("mail.smtp.host", host);
props.setProperty("mail.smtp.port", "587");
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.starttls.enable", "true");
// 보내는 사람 계정 정보 설정
Session session = Session.getInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(from, password);
}
});
// 메일 내용 작성
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
msg.setSubject("안녕하세요");
msg.setText("이건 Spring으로 보내는 Email입니다");
// 메일 보내기
Transport.send(msg);
}
}
<코드 2>
<코드 1> 에서 받는 사람, 보내는 사람의 이메일 주소와 비밀번호, 그리고 메일의 제목과 보낼 내용을 적은 뒤에
Spring을 실행시키면 아래와 같이 이메일이 보내지는 걸 확인할 수 있습니다.
반응형
'Spring' 카테고리의 다른 글
Java Spring_ @Mapping (0) | 2023.03.05 |
---|---|
Java Spring JPA (Cascade vs EntityManager.persist()) (0) | 2023.03.05 |
Spring Framework_ApplicationEventPublisher,@EventListener (0) | 2023.03.03 |
Spring Data JPA _ 페이징처리 (0) | 2023.02.22 |
Regex (정규 표현식) #Java로 regex 이용하기 (0) | 2023.02.19 |