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>
'spring' 카테고리의 다른 글
[Spring Security] 스프링 시큐리티 1. 기본설정 (0) | 2022.01.16 |
---|---|
[스프링부트] vs code 사용하기 메모 (0) | 2021.03.08 |
[스프링] 웹소켓 : 채팅 (0) | 2021.01.29 |
[스프링] REST API / @RequestBody @ResponseBody , HttpMessageConverter (0) | 2021.01.20 |
[스프링] 인터셉터 / intercepter (0) | 2021.01.15 |
[스프링] mapper / CRUD (0) | 2021.01.15 |
[스프링] mybatis (0) | 2021.01.12 |