티스토리 뷰
728x90
반응형
참고 - 해당 이메일 발송은 local에서 이메일 발송입니다.
Step 01 - Pom.xml 의존 설정
- support 라이브러리는 메일 라이브러리 사용을 좀 더 수월하게 할 수 있도록 스프링에서 제공해주는 라이브러리이기 때문에 현재 스프링 버전과 동일하게 맞춰줍니다.
1
2
3
4
5
6
7
8
9
10
11
12
|
<!-- 메일 보내기 위한 -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${org.springframework-version}</version>
</dependency>
|
cs |
Step 02 - root-context.xml에 naver 또는 gmail에 대한 설정
- naver 이메일을 사용하기 위해서는 네이버 SMTP의 설정을 해주어야 합니다.
- gmail을 사용하기 위해서는 보안단계를 낮추거나 또는 인증을 2단계로 강화하여 앱 비밀번호를 받아서 설정해주면 됩니다.
- 필자는 gmail을 사용하고 보안을 강화해서 사용을 했습니다.
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
32
33
34
35
36
37
38
39
40
|
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- naver email 설정 시작 -->
<bean id="naverMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.naver.com" />
<property name="port" value="465" />
<property name="username" value="본인의 아이디" />
<property name="password" value="본인의 비밀번호" />
<property name="defaultEncoding" value="utf-8" />
<property name="javaMailProperties">
<props>
<prop key="mail.debug">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
<prop key="mail.smtps.ssl.checkserveridentity">true</prop>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtps.ssl.trust">*</prop>
<prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
</props>
</property>
</bean>
<!-- naver email 설정 끝 -->
<!-- gmail email 설정 -->
<bean id="gmailMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.gmail.com" />
<property name="port" value="587" />
<property name="username" value="본인의 아이디" />
<property name="password" value="본인의 비밀번호" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.starttls.enable">true</prop>
</props>
</property>
</bean>
<!-- gmail email 설정 끝 -->
</beans>
|
cs |
Step 03 - 네이버 메일 또는 gmail에 대한 설정 방법
Case 01 - 네이버 STMP 설정
- 아래 보이는 사진에서의 아이디와 비밀번호를 root-context.xml에 알맞게 설정을 하면됩니다.
Case 02 - gmail 설정 방법
- gmail 같은 경우 보안 단계를 낮춰서 하는 방법이 있지만 구글링을 통해서 이 방법은 위험하다는 것을 인지하고 보안을 강화하여 앱 비빌번호를 발급 받아서 하는 방법을 참고했습니다.
- 발급 받은 앱 비밀번호를 root-context.xml에 아이디와 설정을 같이 해주었습니다.
아래 링크에서 gmail에서 앱 비밀번호를 발급 받는 방법을 참고 하였습니다.
https://ivvve.github.io/2019/02/09/java/Spring/mail_AuthenticationFailedException/
Step 04 - 메일 코드 작성
- javax의 mail 라이브러리는 실제 보내질 메일 객체를 가집니다. 이 라이브러리만 사용하더라도 메일을 보내는데는 지장이 없겠지만 사용법이 꽤 복잡합니다. 그래서 스프링에서 mail 라이브러리를 쉽게 사용할 수 있도록 해주는데, 이것이 바로 support 라이브러입니다. 실제 메일 객체에 여러 값들을 간단히 넣어서 전송할 수 있도록 해줍니다.
- gmail 이메일을 사용하여 네이버로 이메일을 전송하도록 테스트를 해보았습니다!
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
|
@Controller
@RequestMapping("/app/member/*")
public class MemberController {
@Autowired
protected JavaMailSender gmailMailSender;
@PostMapping(value = "/app/member/mailsend")
public boolean mailsend(String email) throws Exception{
try{
MimeMessage mail = gmailMailSender.createMimeMessage();
MimeMessageHelper mailHelper = new MimeMessageHelper(mail, "UTF-8");
mailHelper.setTo("s_cova_0418@naver.com"); // 받는 사람 셋팅
mailHelper.setSubject("제목이당"); // 제목 셋팅
mailHelper.setText("내용이당"); // 내용 셋팅
// 메일 전송
gmailMailSender.send(mail);
}catch(MessagingException e){
System.out.println("MessagingException");
e.printStackTrace();
}
return true;
}
}
|
cs |
728x90
반응형
'JAVA > Spring' 카테고리의 다른 글
Spring - XML Collection List, Set, Map, Property 사용 방법 (0) | 2021.10.18 |
---|---|
Spring - Bean설정 시 생성자 인자 연결 (0) | 2021.10.18 |
Spring - 빈의 범위(Bean Scope) (0) | 2021.10.17 |
Spring - 빈 스코프란? (0) | 2021.04.12 |
Spring - dropzone을 이용한 파일 업로드 (0) | 2021.02.12 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 트랜잭셔널 아웃박스 패턴 스프링부트
- pipeline architecture
- spring boot redisson sorted set
- spring boot redis 대기열 구현
- service based architecture
- spring boot excel download oom
- 레이어드 아키텍처란
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- transactional outbox pattern
- spring boot poi excel download
- spring boot 엑셀 다운로드
- java userThread와 DaemonThread
- spring boot excel download paging
- redis 대기열 구현
- transactional outbox pattern spring boot
- 서비스 기반 아키텍처
- pipe and filter architecture
- java ThreadLocal
- 공간 기반 아키텍처
- spring boot redisson destributed lock
- redis sorted set으로 대기열 구현
- 자바 백엔드 개발자 추천 도서
- space based architecture
- JDK Dynamic Proxy와 CGLIB의 차이
- polling publisher spring boot
- microkernel architecture
- spring boot redisson 분산락 구현
- redis sorted set
- 람다 표현식
- @ControllerAdvice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함