[스프링 팁] james 이용하여 spring 프로젝트 오류시 자동으로 메일 보내기 :: 소림사의 홍반장!

1. http://james.apache.org/ 에 접속해서 james server를 다운 받는다.







2. 다운받은 파일을 압축을 풀고 bin폴더 안에 있는 run.bat를 실행한다.

 

 

 

* 실행이 되고 있는 화면


 

 


 

* 실행이 되지 않고 창이 꺼진다면 다음을 확인하라!

 

(1) 압축을 푼 경로중에 한글 경로가 있다면 영문으로 바꿀 것!

(2) 환경변수에 JAVA_HOME 이름으로 자신의 jdk 경로를 설정해 줄 것!

(3) 위 처럼 했는데도 에러가 난다면 port 번호가 충돌하는 것이다

-> 해결법 : james-2.3.2\apps\james\SAR-INF 이 경로안의 config.xml 안에서 포트를 수정한다.

 

 

 

(1) JAVA_HOME jdk 경로 설정하기

 

 

 


 

3. commons-email, activation, mail 다운받기위해 아래의 코드 pom.xml에 붙여넣기

 

 

            <!-- 이메일 보내기 위한 세팅 commons-email, activation, mail -->

            <dependency>

                  <groupId>org.apache.commons</groupId>

                  <artifactId>commons-email</artifactId>

                  <version>1.2</version>

            </dependency>

 

            <dependency>

                  <groupId>javax.activation</groupId>

                  <artifactId>activation</artifactId>

                  <version>1.1.1</version>

            </dependency>

     

            <dependency>

                  <groupId>javax.mail</groupId>

                  <artifactId>mail</artifactId>

                  <version>1.4.5</version>

            </dependency>

          <!-- 이메일 세팅 완료 -->

 

 

 

 

4. 오류발생시 이메일 전송되는지 확인을 위해 강제 오류 발생

 

 

 

 

5. @Aspect 로 등록한 클래스에 다음의 내용을 추가한다.

 

@AfterThrowing(pointcut="within(kr.co.khi.dao.*)" +

            "|| within(kr.co.khi.controller.*)" +

            "|| within(kr.co.khi.service.*)", throwing="ex")

    public void exmethod(JoinPoint jp, Exception ex) throws Exception {

        Logger logger = Logger.getLogger(jp.getTarget().getClass());

        logger.warn("오류 : "+ex);

        SimpleEmail email = new SimpleEmail();

        email.setCharset("UTF-8");      // 한글처리

        email.setHostName("localhost"); // SMTP (보내는 메일서버) 세팅

        // email.setSmtpPort(25);   //원래 25번이 SMTP 포트

        email.setFrom("보내는사람이메일주소", "닉네임");

        // addTo(받는사람), addCc(참조), addBcc(숨은참조)

        email.addTo("받는사람이메일주소", "넌누구냐");

        email.addCc("참조받는사람이메일주소", "이건또모지");

        email.setSubject("홈페이지에서 오류가 발생하였습니다.");

        email.setMsg("내용 : "+jp.toLongString()+ex.getStackTrace().toString());

        email.send();

       

    }

 

 

 

6. 프로젝트를 실행시켜 이메일이 왔는지 확인한다.

 

다른 카테고리의 글 목록

Dev. 스프링/환경세팅 카테고리의 포스트를 톺아봅니다