티스토리 뷰
회사에서 곧 DB에서 데이터를 추출하여, 메일로 보내는 작업을 할 것 같아서, 한번 미리 간단하게 예습삼아 만들어 봤습니다.
개발 환경은 Springboot + Maven 입니다.
먼저 의존성 설정을 해줍니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
그리고 properties 설정! 저는 SMTP로 google gmail을 사용하였습니다.
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username= gmailId
spring.mail.password= password
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.auth=true
spring-boot를 사용하면 JavaMailSender Bean을 생성할 필요 없이, 자동으로 생성이 됩니다. 그렇기 때문에 properties에 smtp설정만 해주면 됩니다. 일반적인 spring을 사용하신다면 JavaMailSender bean을 생성하여, bean에서 저런 smtp 값들을 설정을 해줘야 합니다. ~.~
@Autowired
JavaMailSender javaMailSender;
//그냥 텍스트 메일
public void sendMail() throws MessagingException {
MimeMessage message = javaMailSender.createMimeMessage();
message.setSubject("hi");
message.setRecipient(Message.RecipientType.TO, new InternetAddress("recipient email"));
message.setText("hi");
message.setSentDate(new Date());
javaMailSender.send(message);
}
//첨부파일 메일
public void sendMailAttachment() throws MessagingException {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setTo("recipient email");
helper.setSubject("hi2");
helper.setText("attachment");
FileSystemResource file
= new FileSystemResource(new File("./testExcel.xls"));
helper.addAttachment("testExcel.xls", file);
javaMailSender.send(message);
}
보내면, 이렇게 첨부파일과 함께 메일이 발송 됩니다. ~.~
gmail을 smtp로 사용하실 때 설정을 해주셔야 하는 부분들이 있습니다.
POP/IMAP 사용 설정을 해주시면 됩니다.
근데 이렇게 설정을 했는데도, username/password가 틀렸다는 메세지를 받으실 수 있습니다. 저도 이거 떄문에 한참 을 찾았는데...
이럴 때는
보안수준이 낮은 앱에 대해 엑세스를 허용하기를 해주거나
https://support.google.com/accounts/answer/6010255?hl=ko
앱 비밀번호로 로그인하기를 설정하면 됩니다.
저 같은 경우는 보안수준이 낮은 앱에 대해 엑세스 허용하기를 허용해도.. 계속 설정값이 허용안함으로 돌아가며.. 잘되지 않아서 앱비밀번호 설정을 했습니다.
앱비밀번호 설정은 https://www.lifewire.com/get-a-password-to-access-gmail-by-pop-imap-2-1171882
여기를 참고 하면 될 것 같습니다.
참고로 앱비밀번호를 설정하려면, 사전 작업으로 2단계 인증 사용을 하셔야지 앱 비밀번호 설정이 활성화 됩니다.
그런다음 properties에 가서 spring.mail.password를 앱비밀번호로 변경하면 메일 발송이 잘됩니다.
참고 :
https://www.baeldung.com/spring-email
'jvm언어관련 > Spring(SpringBoot)' 카테고리의 다른 글
springboot maven profiles 설정 (0) | 2019.05.01 |
---|---|
Spring Data JPA Audit (0) | 2019.04.29 |
ModelMapper사용하기 (0) | 2019.02.22 |
간단한 springboot error 처리 (0) | 2019.02.22 |
[책]자바 기반의 마이크로서비스 이해와 아키텍처 구축하기 (0) | 2019.02.18 |
- Total
- Today
- Yesterday
- 슬랙
- 이펙티브자바
- multiple row update
- update query multi row
- vue.js
- gradle
- effectivejava
- spring-boot-starter-data-redis
- 뱅크샐러드 유전자
- 뱅크샐러드
- 다중 업데이트
- MSSQL
- 그레이들
- 슬랙 /
- update query set multiple
- visual studio code
- java
- 몽고DB 완벽가이드
- 이것이 자바다
- update set multiple
- 싱글턴
- update query mutiple row
- 업데이트 쿼리
- 뱅셀 유전자
- Slack
- springboot https
- 슬랙봇
- update query
- SpringBoot
- update set multi
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |