[메일보내기]
1. 네이버메일
비밀번호 전송이나 인증받기에 메일 보내는 기능을 많이 사용합니다.
POP3/SMTP 사용이 되야합니다. - 다른 곳에서 메일 받을 수 있음
1. pom.xml 파일에 의존성 라이브러리 설정
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.5.6</version>
</dependency>
2.list.jsp 파일의 이름을 출력하는 부분에 이메일 링크를 추가
<a href="../user/sendmail?email=${vo.email}">${vo.nickname}</a>
3.servlet-context.xml 파일에 이메일 서버 설정을 위한 bean을 생성
<!-- 메일 서버 설정 -->
<beans:bean
class="org.springframework.mail.javamail.JavaMailSenderImpl"
id="mailSender">
<beans:property value="smtp.naver.com" name="host" />
<beans:property value="587" name="port" />
<beans:property name="username" value="ggangpae3" />
<beans:property name="password" value="wnddkd"></beans:property>
<beans:property value="utf-8" name="defaultEncoding" />
<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>
4.UserController 클래스에 user/sendmail 요청이 오면 메일 보내기 화면으로 이동하는 메소드를 생성
//메일 보내기 링크를 눌렀을 때 메일 보내기 화면으로 이동하는 메소드
@RequestMapping(value="user/sendmail", method=RequestMethod.GET)
public String sendmail(@RequestParam("email")String email,
Model model) {
//model에 email 저장
model.addAttribute("email", email);
return "user/sendmail";
}
5.메일 보내기 화면으로 사용할 화면을 user 디렉토리에 sendmail.jsp 파일로 만들기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="../include/header.jsp"%>
<div class="container">
<form method="post">
<div class="form-group">
<label for="receiver">받는 사람 이메일</label>
<input type="email" id="email"
name="receiver" value="${email}" readonly="readonly"
class="form-control" />
</div>
<div class="form-group">
<label for="title">메일 제목</label>
<input type="text"
name="title"
class="form-control" />
</div>
<div align="center">
<label for="contents">메일 제목</label>
<textarea class="form-control" rows="5" name="contents"></textarea>
</div>
<div align="center">
<input type="submit" value="메일 보내기" class="btn btn-warning">
</div>
</form>
</div>
<script>
email = document.getElementById("email");
email.addEventListener("click", function(e){
email.removeAttribute("readonly");
});
email.addEventListener("blur", function(e){
email.setAttribute("readonly","readonly")
})
</script>
<%@ include file="../include/footer.jsp"%>
6. userService인터페이스에 메일 보내기를 위한 메소드를 선언
public void sendEmail(HttpServletRequest request) ;
7.userServiceImple 클래스에 메일 보내기를 위한 메소드를 구현
@Override
public void sendEmail(HttpServletRequest request) {
String receiver =request.getParameter("receiver");
String title = request.getParameter("title");
String content = request.getParameter("content");
try {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("ggangpae3@naver.com");
//받는 사람 설정
message.setTo(receiver);
//메이제목설정
message.setSubject(title);
//메일 내용설정
message.setText(content);
//메일 보내기
mailSender.send(message);
}catch(Exception e) {
System.out.println("email 예외 "+e.getMessage());
e.printStackTrace();
}
}
8.UserController 클래스에 메일 보내기를 눌렀을 때 처리를 위한 메소드를 생성
@RequestMapping(
value="user/sendmail", method=RequestMethod.POST)
public String sendmail(HttpServletRequest request,
RedirectAttributes attr) {
userService.sendmail(request);
attr.addFlashAttribute("msg", "메일 보내기 성공");
return "redirec:/";
}
'Java > 스프링' 카테고리의 다른 글
5.Spring 게시판 만들기 (0) | 2018.05.10 |
---|---|
Spring 카카오 API 지도로 이용 ip로 사용주소 찾기 (0) | 2018.05.09 |
SPRING AOP 관점지향프로그램밍 (0) | 2018.05.02 |
spring 웹소켓으로 채팅창 만들기 (0) | 2018.04.24 |
파일다운로드 방법 (0) | 2018.04.19 |