Java

초간단 자바로 메일보내기(구글 SMTP) 2023년 최신

dev.mk 2023. 10. 7. 16:25
반응형

https://devmg.tistory.com/37

 

자바(java) 구글 메일전송(SMTP) 사용하기

JAVA 구글 Gmail SMTP 이메일 전송 예제 1. JAVA로 구글 Gmail SMTP 이메일 전송을 위해 자르 mail.jar 파일을 Build path(lib)에 추가하거나 메이븐(Maven)프로젝트인 경우는 pom.xml에 아래 dependency 추가한다. javax.m

devmg.tistory.com

 

몇년전 자바로 구글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(파라미터) 입력하여 전송 한다.

반응형