[스프링-7]Spring구글 smtp 이메일 보내기

2022. 7. 15. 19:58· 기존(310)/🏀Spring
목차
  1. 1. JSP 파일인  email.jsp 구현하기
  2. 2.  Controller 구현
  3. 3.  SendVo  Class 구현
  4. 4  EmailService 구현하기
  5. 5. root-content.xml 구현 !!
  6. 6. 여기까지 해서  구현이 완성입니다.

 

 

1. JSP 파일인  email.jsp 구현하기

1. 수신자 이메일을 입력하게 되면 설정해둔 내용을 이메일로 받아 볼수 있도록 하겠씁니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 
<form action="/shop/email/send.do" method="post">
 
<H2>인증번호 보내기</H2>
 
이메일 입력 : <input name="send">
<input type="submit" value="전송">
 
</form>
 
 
<span style="color:red;">${message}</span>
 
</body>
</html>
Colored by Color Scripter
cs

 

2.  Controller 구현

** => JSP 페이지에서 action 값인 /shop/email/send.do 로 가보겠습니다.

 

 

 

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package com.Ims.shop.controller;
 
import javax.inject.Inject;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
 
import com.Ims.shop.service.CartService;
import com.Ims.shop.service.EmailService;
import com.Ims.shop.vo.SendVo;
 
@Controller
public class EmailController {
    
    @Inject
    JavaMailSender mailSender;
    
    private EmailService emailService;
    
    @Autowired
    public EmailController(EmailService emailService) {
        this.emailService = emailService;
    }
    
    
    
    @RequestMapping("/email")
    public String email() {
        return "email";
    }
    
    
    
    @RequestMapping("/email/send.do")
    public String send(SendVo vo,Model model) { // 저는 input type 값을 클래스로 생성해서
   //클래스로 만들게요 ~
        
        System.out.println("v########################"+vo.getSend());
        
        try {
            emailService.sendMail(vo); // 4번에서 구현할게요 emailserivce 부분!!
 
            model.addAttribute("message", "이메일 발송완료");
            
        } catch (Exception e) {
            e.printStackTrace();
            model.addAttribute("message", "이메일 발송 실패");
            
        }
        
        return "email";
    }
}
 
Colored by Color Scripter
cs

 

 

3.  SendVo  Class 구현

**

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.Ims.shop.vo;
 
public class SendVo {
 
    
    private String send;
// setter,getter 값 생성
// @Data 사용가능!


    public String getSend() {
        return send;
    }
 
    public void setSend(String send) {
        this.send = send;
    }
}
 
Colored by Color Scripter
cs

 

4  EmailService 구현하기

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.Ims.shop.service;
 
import java.util.List;
 
import javax.inject.Inject;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
 
import com.Ims.shop.dao.AdminDao;
import com.Ims.shop.dao.NoticeDao;
import com.Ims.shop.vo.MemberVo;
import com.Ims.shop.vo.NoticeVo;
import com.Ims.shop.vo.SendVo;
 
@Service
public class EmailService {
    
    
    @Inject
    JavaMailSender mailSender;
 
    
    
    public void sendMail(SendVo vo) {
        
    
        try {
            
            MimeMessage msg = mailSender.createMimeMessage();
            msg.addRecipient(RecipientType.TO, new InternetAddress(vo.getSend()));
            msg.addFrom(new InternetAddress[] {
                    new InternetAddress("######","홍길동")
            });
            msg.setSubject("테스트 메일 제목"); // 메일제목을 입력해주시면됩니다.,
            msg.setText("테스트입니다"); // 메일 내용을 적어주시면됩니다. 여기서 값을넣어 활용하기
            mailSender.send(msg); // 메일을 mailsender 에 넣어서 전송!!
            
            
        } catch (Exception e) {  // 실패시 ㅇㅖ외처리부분1
                  e.printStackTrace();
                  System.out.println("에러됨");
        }
        
        
        
    };
    
    
}    
    
    
    
Colored by Color Scripter
cs

5. root-content.xml 구현 !!

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<bean id="mailSender" 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="####2차인증후 앱키! 비빌번호아님주의"/>
<property name="javaMailProperties">
<props>
<prop key="mail.transport.protocol">smtp</prop>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
<prop key="mail.debug">true</prop>
<prop key="mail.smtp.ssl.protocols">TLSv1.2</prop>
<prop key="mail.smtp.ssl.trust">smtp.gmail.com</prop> // 다른소스는없는데 이게 있어야해요!!
</props>
</property>
</bean>
Colored by Color Scripter
cs

 

 

6. 여기까지 해서  구현이 완성입니다.

 

 

 

 

이상으로 끝가지 봐주셔서 감사합니다 ~~

저작자표시 (새창열림)

'기존 > 🏀Spring' 카테고리의 다른 글

[Spring][상품 프로젝트][1] pom.xml 설정  (0) 2022.07.25
[스프링-9]Spring 다음 주소록 api 구현하기  (0) 2022.07.15
[스프링 -6]Spring 네이버 로그인하기 (네아로)  (0) 2022.07.14
[스프링 -5]Spring 상품리스트화면 구현하기 (product)  (0) 2022.07.14
[스프링 -4]Spring 파일 업로드 하기 (fileupload)  (0) 2022.07.14
  1. 1. JSP 파일인  email.jsp 구현하기
  2. 2.  Controller 구현
  3. 3.  SendVo  Class 구현
  4. 4  EmailService 구현하기
  5. 5. root-content.xml 구현 !!
  6. 6. 여기까지 해서  구현이 완성입니다.
'기존(310)/🏀Spring' 카테고리의 다른 글
  • [Spring][상품 프로젝트][1] pom.xml 설정
  • [스프링-9]Spring 다음 주소록 api 구현하기
  • [스프링 -6]Spring 네이버 로그인하기 (네아로)
  • [스프링 -5]Spring 상품리스트화면 구현하기 (product)
조각남자
조각남자
프로그래밍 기술 및 저장소
조각남자
조각남자
조각남자
전체
오늘
어제
  • 전체 보기
    • Java
      • Spring
    • 기존
      • 🏀Jsp
      • 🏀Spring
      • 🏀Pom.xml
      • 🏀SpringBoot
      • 🏀JavaExcption
      • 🏀JavaDB
      • 🏀SpringBootCloneWebSite
      • 🏀SptringDependency
      • 🏀JpaEnvorinoment
      • 🏀Thymeleaf
      • 🏀Node
      • 🏀Pyton
      • 🏀DataBase
      • 🏀JavaScript
      • 🏀Android
      • 🏀JPA
      • 🏀Flutter
      • 🐸Utils
      • 🎫 Batch
      • 🎞️JenKins
      • 🎈Python
      • 🎗️AWS
      • 🦠Vue
      • 🐳React
      • 🖲️kafka
      • Next.js

공지사항

  • 공지사항

인기 글

태그

  • D

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
조각남자
[스프링-7]Spring구글 smtp 이메일 보내기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.