1. pom.xml 에 메일 보내기에 필요한 것을 추가한다.
spring-context-support 의 버전은 현재 스프링 버전과 똑같은 것으로 한
<!-- email dependency -->
<!-- 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>4.1.7.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.integration/spring-integration-mail -->
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-mail</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
1-1. root-context에 추가한다.
<!--이메일 인증 구현 -->
<!-- 메일 보내기 -->
<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="id@gmail.com" />
<property name="password" value="password" />
<!-- email 요청시는 SMTP -->
<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>
1-3. 구글에 들어가서 보안수준허용을 바꾸어준다.
1-4. gmail 환경설정에 들어가서 전달 및 POP/IMAP 설정을 밑에 처럼 바꾸어준다.
2. MailService 만든다.
public interface MailService {
* @param subject
* @param text
* @param from 관리자 이메일
* @param to 사용자 이메일
**/
boolean send(String subject, String text, String from, String to);
}
3. MailServiceImpl 만든다. 어노테이션으로 서비스 선언해주고 JavaMailSender 임포트
@Service
public class MailServiceImpl implements MailService {
private final JavaMailSender javaMailSender;
@Autowired
public MailServiceImpl(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
@Override
public boolean send(String subject, String text, String from, String to) {
MimeMessage message = javaMailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
helper.setSubject(subject);
helper.setText(text);
helper.setFrom(from);
helper.setTo(to);
javaMailSender.send(message);
return true;
} catch (MessagingException e) {
e.printStackTrace();
}
return false;
}
}
4. root-context 에 만들어준 서비스 추가
<bean id="mailService" class="kr.co.my.MailServiceImpl">
</bean>
5. MemberController 에 추가된 항목
@Autowired
private MailService mailService;
4. applicationContext.xml 가 없어서 만들어주었다.
src/main/webapp/WEB-INF/spring/appServlet 밑에서 command-N(Ctrl-N) 누른 뒤에 spring을 검색하면 나오는 Spring Bean Configuration file 을 applicationContext.xml 라는 이름으로 만들어준다. 만들 때 next를 눌러서 aop, beans, p, tx 추가해준다.
5. listener 은 원래 있었고, context-param 새로 작성해 주었다.
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/applicationContext</param-value>
</context-param>
<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
'프로그래밍 > Spring' 카테고리의 다른 글
스프링 프레임워크(sts)와 Mariadb HikariCp 이클립스에서 연결하기 (0) | 2019.04.29 |
---|---|
Mac 맥에서 이클립스 Lombok 설치 (0) | 2019.04.28 |
spring 비밀번호 찾기 (4) | 2018.10.24 |
@ResponseBody (0) | 2018.10.19 |
404 에러가 뜰 때 해결한 방법 (0) | 2018.10.19 |