✈ 이메일 API란
사람이 직접 메일 프로그램(Gmail, Outlook 등)을 쓰는게 아니라
코드로 이메일을 보내고/확인하는 기능
ex) 회원가입 인증 메일 발송
비밀번호 재설정 링크 전송
주문 완료 안내 메일
관리자 알림 메일
✈ 이메일 API로 할 수 있는 것
[ 주요 기능 ]
이메일 보내기
첨부파일 포함 메일
HTML 메일 전송
다수에게 동시에 전송
메일 템플릿 사용
[ 잘 안하는 것 ]
이메일 읽기/삭제
메일 서버 직접 구축
✈ 이메일 전송 방식 2가지
1) SMTP 기반 (전통 방식)
Gmail, Naver 메일 서버 사용
자바에서는 JavaMail API
설정이 조금 번거롭다
구조 : 내서버 ➡ SMTP 서버 ➡ 수신자 메일함
2) 이메일 서비스 API (요즘 방식)
SendGrid, Amazon SES, Mailgun 등
REST API 방식
안정적이고 대량 발송에 강함
구조 : 내서버 ➡ 이메일 서비스 API ➡ 수신자 메일함
✈ JAVA에서 가장 많이 쓰는 이메일 API
JavaMail API 표준
자바에서 이메일 보낼 때 가장 기본
Maven 의존성
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
기본 코드 예제
Properties prop = new Properties();
prop.put("mail.smtp.host", "smtp.gmail.com");
prop.put("mail.smtp.port", "587");
prop.put("mail.smtp.auth", "true");
prop.put("mail.smtp.starttls.enable", "true");
Session session = Session.getInstance(prop, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("내이메일@gmail.com", "앱비밀번호");
}
});
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("내이메일@gmail.com"));
message.setRecipients(
Message.RecipientType.TO,
InternetAddress.parse("user@email.com")
);
message.setSubject("회원가입 인증");
message.setText("인증번호: 123456");
Transport.send(message);
주의
Gamil은 앱 비밀번호 필요
2단계 인증 필수
✈ 이메일 API 실제 사용 예 (웹 프로젝트)
회원가입 인증
회원가입 ➡ 인증번호 생성 ➡ 이메일 발송 ➡ 번호 비교
비밀번호 찾기
이메일 입력 ➡ 토큰 생성 ➡ 링크 메일 발송 ➡ 비밀번호 변경
주문 완료 메일
결제 완료 ➡ 주문 정보 조회 ➡ 주문 내역 메일 전송
✈ 이메일 API vs 문자(SMS) API 비교
| 항목 | 이메일 API | 문자 API |
| 비용 | 무료~저렴 | 보통 유료 |
| 내용 | 길고 HTML 가능 | 짧음 |
| 즉시성 | 보통 | 매우 빠름 |
| 사용처 | 인증, 알림, 주문 | 본인인증, 긴급알림 |
✈ 실무에서 중요한 포인트
비밀번호 코드에 이메일 비번 직접 넣지 말기
환경변수 사용
스팸 처리 방지
실패 로그 꼭 남기기
'🍏 개발일기' 카테고리의 다른 글
| 트랜잭션에 대해 알아보자 ( + 결제와 장바구니) (0) | 2026.01.08 |
|---|---|
| ready() 함수가 필요한 이유 (0) | 2025.12.21 |
| Hexagonal Architecture, 진짜 하실 건가요? 글을 읽으며.. (1) | 2025.12.16 |
| 모달창(Model Window) | 모달에 대한 모든 것.. (0) | 2025.12.15 |
| 서블릿 파일에 대하여 알아보자 (0) | 2025.12.14 |