JAVA/Spring
Spring - naverEmail 또는 gmail로 이메일 발송하기
realizers
2021. 7. 8. 21:09
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
반응형