-
초간단 자바로 메일보내기(구글 SMTP) 2023년 최신Java 2023. 10. 7. 16:25반응형
몇년전 자바로 구글SMTP 보내는 방법과 요즘 보내는 방법이 달라졌다.
예전에는 구글 SMTP를 이용하려면 보안단계를 낮추고 이메일주소/비밀번호가 필요했지만
이제는 앱비밀번호란게 필요하다. 이 정보는 스프링 프로퍼티 파일에 입력해야한다.
앱비밀번호 발급받는 방법시작
로그인후 Google 계정관리 클릭
검색창에 앱 비밀번호 입력후 진입.
※ 만약에 검색 결과에 노출되지 않으면 2단계 인증을 활성화 해야한다. ↓ ↓
보안 > 2단계 인증 클릭
App name 입력후 [만들기] 클릭
16자리 앱비밀번호를 복사
application.yml 에 입력
spring: mail: host: smtp.gmail.com port: 587 username: test@gmail.com password: aaaa bbbb cccc dddd properties: mail: smtp: auth: true starttls: enable: true
※ application.properties 일경우
spring.mail.host=smtp.gmail.com spring.mail.port=587 spring.mail.username=your-email@gmail.com spring.mail.password=your-gmail-password spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true
build.gradle 에 아래 di추가
dependencies { implementation 'org.springframework.boot:spring-boot-starter-mail' }
※ maven 일경우
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> <version>3.1.4</version> </dependency>
MainSendService.java 작성
import org.springframework.mail.MailException; import org.springframework.mail.SimpleMailMessage; import org.springframework.stereotype.Service; @Service public class MainSendService { //기본적으로 구글 SMTP 서버를 이용한다. //본인의 계정으로 다른 이용자에게 메일을 보내는 개념이다. //본인의 구글계정 아이디/앱비밀번호 정보를 application.yml에 정의한다. /** * @methodName : sendEmailToMember * @description : 메일전송 * @author : * @date : 2023.10.07 * @param toEmailAddr 받는사람이메일주소 * @param subject 제목 * @param text 내용 */ public void sendEmailToMember(String toEmailAddr, String subject, String text) { SimpleMailMessage message = new SimpleMailMessage(); try { //받는사람 message.setTo(toEmailAddr); //제목 message.setSubject(subject); //내용 message.setText(text); } catch (MailException e) { // 메일 전송이 실패하면 예외가 발생 e.printStackTrace(); } } }
서비스를 만들었으니 호출하는 곳에서
mainSendService.sendEmailToMember(파라미터) 입력하여 전송 한다.
반응형'Java' 카테고리의 다른 글
[Java] 사용자 정의 예외 (Exception) 만들기 (0) 2023.02.26 [java] 자주쓰는 람다식 Lambda (stream 인터페이스) 예제 (0) 2023.02.12 [java] @SuppressWarnings 란? (0) 2022.02.20 자바 예외(Exception) 및 예외 처리 개념 (0) 2020.05.26 java 람다식 lamda 여러가지 응용하기 (0) 2020.04.25