출처: https://bumcrush.tistory.com/182 [맑음때때로 여름]

1-1. pom.xml에 라이브러리 추가

<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
</dependency>


<!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>${org.springframework-version}</version>
</dependency>

1-2. 서블릿 리퀘스트에 빈즈 추가

	<beans:bean id="mainSender"
	class="org.springframework.mail.javamail.JavaMailSenderImpl"
	>
	
	<beans:property name="host" value="smtp.gmail.com"/>
	<beans:property name="port" value="587"/>
	<beans:property name="username" value="hyoseonjinbit@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.protocal">smtp</beans:prop>
			<beans:prop key="mail.transport.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>
	
	
	<beans:bean id="templateEmailmessage"
	class="org.springframework.mail.SimpleMailMessage"
	p:subject="회원가입을 축하합니다"
	p:text="정상적인 가입을 위해 아래링크를 클릭해주세요"/>
package com.aia.firstspring.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.aia.firstspring.service.MailSenderService;

@Controller
@RequestMapping("/mail")
public class MailSenderController {
	
	@Autowired
	private MailSenderService mailService; 
	
	@RequestMapping("/simplemail")
	public void simpleMailSend() {
		
		mailService.simpleMailsend();
	}
	
	
	@Autowired
	private SimpleMailMessage templateMessage;
	
	@Autowired  
	private JavaMailSender mailsender;
	
	@RequestMapping("/simplemail2")
	public void simpleMailSend2() {
		
		mailService.mailSend("heeumheeum@naver.com");
		
		/*
		 * SimpleMailMessage message = new SimpleMailMessage(templateMessage);
		 * message.setTo("heeumheeum@naver.com");
		 * 
		 * mailsender.send(message);
		 */	
	}
	
}
package com.aia.firstspring.service;

import java.io.UnsupportedEncodingException;

import javax.mail.MessagingException;
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.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;

@Service
public class MailSenderService {

	@Autowired  
	private JavaMailSender mailsender;
	
	public boolean simpleMailsend() {
		
		boolean result =true;

		
		SimpleMailMessage message = new SimpleMailMessage();
		message.setTo("hyein4coding@gmail.com");
		message.setSubject("인정합니까?");
		message.setText("인정합니다");
		try {
			mailsender.send(message);
		}catch (MailException e) {			
			result = false;
		}
		return result;
	}

	public boolean mailSend(String toEmailAddress) {
		
		boolean result = true;
		
		MimeMessage message = mailsender.createMimeMessage();
		try {
			
			// 메일의 제목 설정
			message.setSubject("[안내] 가입축하", "UTF-8"); 
			// 메일 내용
			String htmlStr = "<h1 style=\"color:red;\">가입축하드립니다 :)</h1>";
			message.setText(htmlStr, "UTF-8", "html");
			// 보내는 사람 이메일 : gmail을 사용하는 경우에는 인증된 메일처리가 된다.
			message.setFrom(new InternetAddress("hyoseonjinbit@gmail.com"));
			// 받는 사람의 이메일  주소
			message.addRecipient(RecipientType.TO, new InternetAddress("heeumheeum@naver.com","효선쓰","UTF-8"));
			// 메일 전송
			mailsender.send(message);
			
			
		} catch (MessagingException e) {
			result=false;
			e.printStackTrace();
		} catch (UnsupportedEncodingException e) {
			result=false;
			e.printStackTrace();
		}
		
		return result;
	}
	

	// 받는사람의메일주소, 받는이름, 메일제목, 메일내용
	public boolean mailSend(String toEmailAddress,String name, String subject, String text) {
		
		boolean result = true;
		
		MimeMessage message = mailsender.createMimeMessage();
		try {
			
			// 메일의 제목 설정
			message.setSubject(subject, "UTF-8"); 
			// 메일내용
			message.setText(text, "UTF-8", "html");
			// 보내는 사람 이메일 : gmail을 사용하는 경우에는 인증된 메일처리가 된다.
			message.setFrom(new InternetAddress("hyoseonjinbit@gmail.com"));
			// 받는 사람의 이메일  주소
			message.addRecipient(RecipientType.TO, new InternetAddress(toEmailAddress,name,"UTF-8"));
			// 메일 전송
			mailsender.send(message);
			
			
		} catch (MessagingException e) {
			result=false;
			e.printStackTrace();
		} catch (UnsupportedEncodingException e) {
			result=false;
			e.printStackTrace();
		}
		
		return result;
	}
}

 

 

package com.aia.firstspring.member.service;

import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.aia.firstspring.member.dao.MemberDao;
import com.aia.firstspring.member.dao.MemberInterfaceDao;
import com.aia.firstspring.member.dao.MybatisMemberDao;
import com.aia.firstspring.member.domain.Member;
import com.aia.firstspring.service.MailSenderService;

@Service
public class MemberRegService {

//	@Autowired
//	private MemberDao dao;
	
//	@Autowired
//	private MybatisMemberDao dao;
	
	private MemberInterfaceDao dao;
	
	@Autowired
	private SqlSessionTemplate template;
	
	@Autowired
	private MailSenderService mailService;
	
	
	public int insertMember(Member member) {
		int result = 0;
		try {
			dao = template.getMapper(MemberInterfaceDao.class);
			result = dao.insertMember(member);
			
			String htmlStr="<h1><a href=\"http://localhost:8080/op/firstspring\">인증하기</a></h1>";
			// 메일 전송
			mailService.mailSend(member.getMemberid(), member.getMembername(), "인증확인메일", htmlStr);
		} catch (Exception e) {
			e.printStackTrace();
		}
				
		return result;
	}
	
	
	
	
	
	
	
	
	
	
}
@@ -0,0 +1,14 @@
<%@ 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>


<h1>메일발송✉✉</h1>
</body>
</html>

 

+ Recent posts