안경잡이개발자

728x90
반응형

  일반적으로 JSP, PHP 등을 이용해서 Google Gmail STMP 서비스를 이용할 수 있습니다. 일반적으로 구글에 회원가입을 한 뒤에 핸드폰으로 인증을 하게 되면 지메일 서비스를 바로 사용할 수 있는데요, 그렇게 지메일을 사용할 수 있는 상태에서는 해당 지메일 계정을 우리의 웹 서버에서 사용할 수 있는 거죠. 일반적으로 회원가입 이후에 이메일 인증 메일을 보내거나 할 때 우리의 웹 사이트에 넣을 수 있는 모듈입니다. 찾아보시면 금방 소스코드를 구해서 구현하시는 건 어렵지 않을 건데요, 카페 24와 같은 호스팅 서비스에 이를 적용하고자 하면 문제가 발생합니다.


  하지만 호스팅 서비스를 이용하는 경우에는 콘솔(Console) 창을 직접 확인하기 어려워 정확히 어떤 오류가 발생하는지 알기 힘들죠. 저 같은 경우에도 단순히 로컬 호스트에서는 잘 돌아가던 SMTP 모듈이 카페 24 호스팅 서버에 직접 업로드하니까 오류가 발생했다고만 나오더라구요.


  카페 24(Cafe 24)에서 JSP 호스팅을 신청하면, 퓨티(Putty)와 같은 SSH 접속 프로그램을 이용해 자신이 구매한 JSP 톰캣 서버에 접속할 수 있습니다. 그 중에서도 웹 서버에 오류가 발생하는 등 로그를 확인해야 할 때는 다음과 같이 할 수 있어요.


  ▶ cd tomcat/logs/ : 톰캣의 로그 폴더로 이동합니다.

  ▶ tail -f catalina.out : 현 시점에서부터 발생하는 웹 로그를 모두 화면에 출력합니다.



  위와 같이 웹 로그 출력이 돌아가도록 만든 이후에 확인해봅시다.



  마찬가지로 다시 SMTP 오류가 나는 부분의 웹 페이지에 접속합니다. 그러면 이번에는 발생하는 오류 메시지가 위와 같이 콘솔 창에 출력되는 것을 알 수 있습니다. 대충 보니까 카페 24에서 구글 SMTP로 접속하는 과정에서 인증 오류가 발생한 것을 알 수 있습니다. 이것은 호스팅 서비스를 경유하기 때문이에요. 기존에 로컬 호스트를 사용하던 때보다 구글 측에서 자원 고갈 공격 등을 받을 여지가 있어서, 추가적인 보안 인증을 거쳐야지 지메일을 이용할 수 있도록 구글 측에서 규제를 넣은 것이랍니다. 따라서 바로 추가 인증 과정을 통해 SMTP 서비스를 사용해보도록 하겠습니다.



  바로 위와 같이 구글 서비스에서 '계정' 탭에 들어가도록 합니다. 이후에 '로그인 및 보안' 탭에 들어가시면 됩니다.



  그리고 위와 같이 '로그인 및 보안'에서 2단계 인증을 사용하도록 처리하시면 됩니다. 현재는 '사용 중지' 상태네요.



  이제 위와 같이 2단계 인증을 위해서 핸드폰 인증을 해주시면 됩니다. '시작하기' 버튼을 눌러줄게요.



  먼저 위와 같이 비밀번호를 입력하라고 할 거에요.


  이후에 위와 같이 휴대폰 인증을 해주시면 됩니다. 별 거 없어요. 핸드폰으로 문자 한 통 오는데 그 인증번호 입력해주시면 됩니다.



  휴대폰 인증이 완료되면 위와 같이 '사용 설정'을 해줄 수 있습니다.



  이제 위와 같이 다시 '로그인 및 보안' 탭에 들어가면 '앱 비밀번호' 부분이 있습니다. 이를 생성해주시면 됩니다.



  이제 위와 같이 '기타'로 하나의 비밀번호를 새롭게 추가해주시면 됩니다.



  기본적으로 위와 같이 서비스의 이름을 입력하면 알아서 비밀번호가 나온답니다.



  이제 위와 같이 비밀번호가 등장했네요. 



  위와 같이 성공적으로 서비스가 생성되었구요. 이제 SMTP 소스코드에서 인증하는 부분의 비밀번호를 아까 받은 비밀번호로 넣으시면 됩니다. 아이디는 그대로 구글 계정을 쓰시면 되구요. JSP에서의 예제는 다음과 같습니다.


package util;


import javax.mail.Authenticator;

import javax.mail.PasswordAuthentication;


public class Gmail extends Authenticator {


    @Override

    protected PasswordAuthentication getPasswordAuthentication() {

        return new PasswordAuthentication("구글 이메일 계정","부여받은 비밀번호");

    }

    

}


  이제 위와 같이 톰캣 서버를 재시작해주면 됩니다.


  ▶ CD ~ : 다시 홈 디렉토리로 이동하기

  ▶ ./tomcat/bin/shutdown.sh : 현재 실행 중인 톰캣을 종료시키기

  ▶ ./tomcat/bin/startup.sh : 톰캣을 다시 실행시키기



이제 한 번 테스트를 해보겠습니다.



  위와 같이 성공적으로 오류 없이 메일이 전송되는 것을 확인할 수 있습니다.

728x90
반응형

Comment +2