[해야할 일]
(1)pom.xml에 필요한 라이브러리들 등록
(2)servlet-context.xml에 SimpleMaileSender 설정 빈들 등록
(3)사용하려는 이메일 계정의 보안 수준 낮추기
(4)Controller 생성
(5)Service 클래스 생성
(6)servlet-context.xml에서 Service 클래스의 빈 등록
(7)View 생성
(8)Home에서 발송 a태그 만들기
(1)pom.xml에 필요한 라이브러리들 등록
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<!-- 08/03 메일발송을 위한 라이브러리 설정 시작 -->
<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
<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>
|
(2)servlet-context.xml에 SimpleMaileSender 설정 빈들 등록
이때 username에는 메일을 발송하는 이메일/ password는 계정의 비밀번호를
입력해야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<!-- 메일 발송을 위한 JavaMailSenderImpl 빈 설정 -->
<beans:bean id="mailSender"
class="org.springframework.mail.javamail.JavaMailSenderImpl">
<beans:property name="host" value="smtp.gmail.com" />
<beans:property name="port" value="587" /><!-- 465 or 25 -->
<beans:property name="username" value="ryuinhye9501@gmail.com" />
<beans:property name="password" value="계정의 비밀번호" />
<beans:property name="defaultEncoding" value="utf-8" />
<beans:property name="javaMailProperties">
<beans:props>
<beans:prop key="mail.transport.protocol">smtp</beans:prop>
<beans:prop key="mail.smtp.auth">true</beans:prop>
<beans:prop key="mail.smtp.starttls.enable">true</beans:prop>
<beans:prop key="mail.debug">true</beans:prop>
</beans:props>
</beans:property>
</beans:bean>
|
(3)사용하려는 이메일 계정의 보안 수준 낮추기
본인은 구글 계정을 사용했기 때문에, 구글 계정 기준으로 설명하겠다.
참고로 구글 계정은 주민등록번호를 등록하지 않고도 여러 개를 만들 수 있기 때문에 임시로 사용하기 좋다.
Google 계정에 접속한다.
클릭. 스크롤을 쭉 내리면 ‘보안 수준이 낮은 앱 허용: 사용 안함’이 있다.
버튼을 클릭해서 ‘사용’으로 바꿔준다.
이 작업을 왜 하는가 하면, 보안 수준이 낮아야 메일을 발송할 수 있다.
(4)Controller 생성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
package com.bitcampi.mvc0803;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class MailSenderController {
@Autowired
SimpleMailSenderService mailsenderSerivce;
@RequestMapping("mail/simpleMail")
public String sendSimpleMail() {
//메일 발송
mailsenderSerivce.sendSimpleMail();
return "sendmail";
}
}
|
(5)Service 클래스 생성
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
|
package com.bitcampi.mvc0803;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
public class SimpleMailSenderService {
@Autowired
JavaMailSender mailSender;
public void sendSimpleMail() {
//SimpleMailMessage 생성
SimpleMailMessage message = new SimpleMailMessage();
//SimpleMailMessage 설정
message.setFrom("ryuinhye95@gmail.com");
message.setTo("ryuinhye95@gmail.com");
message.setSubject("[공지] 무더위를 시원하게 보낼 수 있는 절호의 기회!");
message.setText("지금 바로 확인하세요!");
mailSender.send(message);
System.out.println("발송완료");
}
}
|
굵은 색으로 표시한 것이 무엇인지 궁금할 것이다.
(6)servlet-context.xml에서 Service 클래스의 빈 등록
1
2
|
<!-- SimpleMailSenderSerivce 빈 등록 -->
<beans:bean id="SimpleMailSenderService" class="com.bitcampi.mvc0803.SimpleMailSenderService"/>
|
(7)View 생성 [sendmail.jsp]
뷰의 이름은 Controller에서 return 했던 이름과 같게 설정해준다.
1
2
3
4
5
6
7
8
9
10
11
12
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>메일 발송</h1>
</body>
</html>
|
(8) 목차 만들기 [home.jsp]
참고로 Spring legacy 프로젝트를 생성했을 때, default로 있는 home.jsp를 이용했다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page session="false" %>
<html>
<head>
<title>Home</title>
</head>
<body>
<h1>
Spring MVC 2018/08/03
</h1>
<ul>
<li><a href="mail/simpleMail">메일 전송(SimpleMail)</a></li>
</ul>
</body>
</html>
|
결과)
댓글 없음:
댓글 쓰기