필요한 의존성을 추가한다.
implementation 'org.springframework.boot:spring-boot-starter-mail'
설정 파일에 메일 발송계정 정보를 입력한다.
spring:
mail:
host: smtp.worksmobile.com
port: 587
username: 발송계정 메일주소
password: 발송계정 비밀번호
properties:
mail:
smtp:
auth: true
starttls.enable: true
회사 메일이 웍스모바일 메일을 이용하고 있기 때문에 해당 정보로 입력해줬다.
정보를 확인하는 방법은, 환경설정 > 고급설정 > IMAP/SMTP에서 확인할 수 있다.
HTML
태그를 이용해 메일을 발송하고자 한다면 MimeMessage
를 이용해야 한다.
그리고 setText()
의 두 번째 인자값을 true
로 설정해야 HTML
형식으로 전송된다.
@RequiredArgsConstructor
@Service
public class MailService {
private final MailProperties mailProperties;
private final JavaMailSender mailSender;
public void sendSimpleMailMessage(String subject, String content) {
final SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setTo(mailProperties.getTO());
simpleMailMessage.setFrom(mailProperties.getFROM());
simpleMailMessage.setSubject(subject);
simpleMailMessage.setText(content);
mailSender.send(simpleMailMessage);
}
public void sendTemplateMailMessage(String subject, String content, String filePath) {
try {
final MimeMessage mimeMessage = mailSender.createMimeMessage();
final MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);
messageHelper.setTo(mailProperties.getTO()); // 메일 발송계정 세팅
messageHelper.setFrom(mailProperties.getFROM()); // 메일 수신계정 세팅
messageHelper.setSubject(subject);
messageHelper.setText(String.format("<html><body>%s</body></html>", content), true);
if (StringUtils.hasText(filePath)) {
final File file = new File(filePath);
messageHelper.addAttachment(file.getName(), file);
}
mailSender.send(mimeMessage);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
'STUDY > Spring' 카테고리의 다른 글
Spring | JDBCTemplate 사용하기 (0) | 2021.11.19 |
---|---|
JPA | @Converter, @Convert (+ @Convert 먹히지 않을 때) (0) | 2021.11.01 |
Spring Boot | RestTemplate PATCH 사용하기 (0) | 2021.10.19 |
Spring Boot | JPA사용 중 기본키를 UPDATE해야 할 때.. (1) | 2021.10.18 |
Spring Boot | Spring Security Test @WithMockUser를 커스터마이징 해서 사용하자 (0) | 2021.09.24 |