이 글에서는 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

댓글 없음 :
댓글 쓰기