밥차 프로젝트

javax mail library 사용하기(이메일 보내기 구현)

issac 2021. 2. 25. 17:09

밥차 프로젝트의 아이디 / 비밀번호 찾기에 활용할 예정. 

Gmail 을 통해 구현 하였다. 

  • pom.xml 설정하기
		<!-- 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>

 

  • root-context.xml 설정하기
  <!-- 메일보내기 -->
   <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="구글아이디 입력@gmail.com" />
      <property name="password" value="비밀번호 입력" />
      <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>
         </props>
      </property>
 
   </bean>

위 와같이 설정 후 view페이지 및 컨트롤러 연결 후 전송 할수 있다. 

 

  • 컨트롤러
package com.hungry.spring.mail.controller;

import javax.mail.internet.MimeMessage;
import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller("mailController")
@RequestMapping("/mail")
public class MailController {

	@Autowired
	private JavaMailSender mailSender;

	// mailForm
	@RequestMapping("/mailForm")
	public ModelAndView mailForm() {
		return new ModelAndView("/mail/mailForm");
	}

	// mailSending 코드
	@RequestMapping(value = "/mailSending")
	public String mailSending(HttpServletRequest request) {

		String setfrom = "issac.lee.dev@gmail.com";
		String tomail = request.getParameter("tomail"); // 받는 사람 이메일
		String title = request.getParameter("title"); // 제목
		String content = request.getParameter("content"); // 내용

		try {
			MimeMessage message = mailSender.createMimeMessage();
			MimeMessageHelper messageHelper = new MimeMessageHelper(message, true, "UTF-8");

			messageHelper.setFrom(setfrom); // 보내는사람 생략하거나 하면 정상작동을 안함
			messageHelper.setTo(tomail); // 받는사람 이메일
			messageHelper.setSubject(title); // 메일제목은 생략이 가능하다
			messageHelper.setText(content); // 메일 내용

			mailSender.send(message);
		} catch (Exception e) {
			System.out.println(e);
		}

		return "redirect:/mail/mailForm";
	}
}

 

  • 주의할점

    구글의 최신 보안표준에의해 사용하려면 아래항목에 체크해야한다.

 

    https://www.google.com/settings/security/lesssecureapps

 

 

소스 출처 : m.blog.naver.com/PostView.nhn?blogId=racoon_z&logNo=220695568817&proxyReferer=https:%2F%2Fwww.google.com%2F

'밥차 프로젝트' 카테고리의 다른 글

밥차 프로젝트 구현영상  (0) 2021.03.23
밥차의 개막  (0) 2021.02.19