동기의 이것저것
article thumbnail
728x90

Gmail에 들어가 설정(톱니바퀴)을 클릭하고 모든 설정 보기로 들어간다.

 

전달 및 POP/IMAP에 들어가서 설정을 바꿔준다.

 

계정으로 들어가서 보안으로 들어간다.

 

2단계 인증을 해준 뒤

위의 화살표로 들어가서 앱 비밀번호를 설정해준다.

설정한 비밀번호를 저장해둔다.

 

 

이제 인텔리제이로 들어가서 build.gradle에 의존성을 추가한다.

 implementation 'org.springframework.boot:spring-boot-starter-mail'

 

 

 .yml 파일에 들어가서 설정 내용을 작성해준다.

spring:
  mail:
    host: smtp.gmail.com
    port: 587
    username: [내 이메일 주소]
    password: [위에서 저장한 앱 비밀번호]
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true

작성한 정보중에 중요한 정보가 있으므로 gitignore을 통해 가려주도록 하자!

 

이제 간단하게 메일 발송만 해볼 것이다!

 

다음과 같이 컨트롤러가 있고

@Controller
@RequiredArgsConstructor
public class MailController {
    private final MailService mailService;

    @GetMapping("/mail")
    public String Mail() {
        return "mail";
    }
    
    @PostMapping("/mail")
    public void Mail(Mail mail) {
        mailService.mailSend(mail);
    }

 

mailService에 mailSend 메서드가 다음과 같이 구현되어 있을 때

@Service
@RequiredArgsConstructor
public class MailService {
    private JavaMailSender mailSender;
    private static final String yourAddress = "EMAIL";

    public void mailSend(Mail mail) {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setTo(mail.getAddress());
        message.setFrom(MailService.yourAddress);
        message.setSubject(mailDto.getTitle());
        message.setText(mailDto.getContent());

        mailSender.send(message);
    }
}

 


setTo - 받는 사람의 이메일 주소
setFrom - 보내는 사람의 이메일 주소
setSubject - 이메일의 제목
setText - 내용

 

이제 한번 실행해보자!

와우! 메일이 잘 가는 것을 볼 수 있다!!

 

위에서는 SimpleMailMessage클래스를 사용하였지만 MimeMessage 클래스를 사용하여 html 과 같은 추가적인 정보를 

같이 담아서 보낼 수도 있다!! (메일을 보내면 html이 랜더링되어서 발송된다)

728x90
반응형

'▸spring' 카테고리의 다른 글

좋은 객체 지향 설계의 5가지 원칙 - SOLID  (0) 2023.04.05
profile

동기의 이것저것

@U_motivation

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!