이 글에서는 gmail을 사용하여, email을 보내는 방법을 설명하도록 한다.
가장 먼저, gmail의 email smtp를 사용하기 위해서는 2 verification step이 필요하다.
해당 설정은 다른 글 [http://todayleave.blogspot.kr/2016/01/google-2-step-verification.html] 에서 설명하도록 하겠다.
spring-boot-starter-mail 라이브러리를 import하게 되면,
해당 javaMailSender 빈이 설정되어 있지않는 경우에는 자동으로 빈을 생성해준다.
다만, 이 경우에는 property file [application.properties 혹은 application.yml]을 통해
해당 값을 아래와 같이 설정해주어야 한다.
spring: mail: host: smtp.gmail.com port: 587 username: test_email@gmail.com password: test_password properties: mail: smtp: starttls: enable: true
위 프로퍼티 파일에서 username은 gmail 계정, password는 2 verification에서 생성한 app password를 설정하면 된다.
위와 같이 설정한 이후, 아래와 같이 emailService의 sendMail method를 통해 email을 직접 보낼 수 있다.
@Service public class EmailServiceImpl implements EmailService { @Autowired private JavaMailSender javaMailSender; @Override public void sendMail(TestEmail email) throws MessagingException { MimeMessage message = javaMailSender.createMimeMessage(); message.setSubject(email.getSubject()); message.setSender(new InternetAddress(email.getSender())); message.setRecipient(Message.RecipientType.TO, new InternetAddress(email.getRecipient())); message.setText(email.getContent()); message.setSentDate(new Date()); javaMailSender.send(message); } }
해당 메소드를 통해 email을 보냈을 때, 받은 메일을 아래와 같이 확인할 수 있다.
전체 예제는 아래 링크에서 다운로드가 가능하다.
https://gitlab.com/shashaka/spring-email-project
댓글 없음 :
댓글 쓰기