21.회원가입이메일전송
회원가입 이메일 전송
순서
1.이메일 환경셋팅
2.view 입력란 속성 추가
3.이메일 전송 메소드
4.controller 메서드 추가
5.view 유효성 검사
메일서버 (SMTP Server)를 통해 메일을 전송 할때 두가지 방법이 존재한다. (메일서버: SMTP Server, POP3 Server / POP3 Server는 이메일을 수신하는 서버이다)
첫번째: 메일서버가 릴레이를 허용하는 경우 (외부를 경유해서 외부로 메일을 보내는 경우)
계정이 존재하지 않아도 메일을 발송 할 수 있다.
스팸으로 악용 될 가능성이 존재한다. (Telnet이용)
두번쨰: 메일서버에 계정 인증 후 메일을 전송하는 방법이다.
MailSender Bean을 등록하여 이루어진다.
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>
두개의 라이브러리를 추가 해준다.
- root-context.xml
<!-- navermail설정 -->
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.naver.com"/> <!-- 메이서버 호스트 -->
<property name="port" value="587"/> <!-- 메이서버 포트번호 -->
<property name="username" value="dladmswl3130@naver.com"/> <!-- 자신의 이메일 아이디 -->
<property name="password" value= "####"/> <!-- 자신의 비밀번호 -->
<!-- 보안연결 SSL과 관련된 설정 -->
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
<prop key="mail.smtps.checkserveridentity">true</prop>
<prop key="mail.smtps.ssl.trust">*</prop>
<prop key="mail.smtp.ssl.protocols">TLSv1.2</prop>
<prop key="mail.debug">true</prop>
<prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
</props>
</property>
</bean>
MailSender Bean을 등록해준다.
username: 이메일 아이디 입력
password: 이메일 비밀번호 입력
2.view 입력란 속성 추가
<div class="mail_check_input_box" id ="mail_check_input_box_false">
#mail_check_input_box_false{
background-color:#ebebe4;
}
#mail_check_input_box_true{
background-color:white;
}
false에는 회색과 true에는 흰색을 설정해준다. 이메일이 전송이 완료 되었을 시 색상을 변경하기위해서 css를 설정해준다.
<input class="form-control mail_check_input" disabled="disabled">
인증번호 input에는 disabled 속성을 추가해준다.
3.이메일 전송 메소드
인증번호 버튼을 클릭하게 되면 작동하는 메서드를 추가한다.
controller에게 이메일 주소를 보내고 인증번호 생성하여 이메일을 전송한뒤 인증번호를 다시 반환한다.
이과정에서 화면전환이 되면 안되기때문에 ajax를 사용한다.
$(".mail_check_button").click(function(){
var email = $(".mail_input").val(); //입력한 이메일
$.ajax({
type:"GET",
url:"mailCheck?email=" + email,
});
});
url을 통해 데이터를 보낸다. url명: mailCheck
댓글남기기