보통 Gmail과 같은 경우는 모바일 폰에서 Push 알림을 주기 때문에 새로운 메일을 받았을 때 사용자가 인지할 수 있다.

하지만 Push 서비스를 제공하지 않는 경우에는 매번 로그인해서 확인할 수 밖에 없다.

이를 위해서 새로운 메일이 왔을 때, MS Office의 Outlook에서 Telegram Bot을 활용해 알림을 보내는 방법을 구성해봤다.


* Outlook은 2016 버전을 기준으로 만들었으며, 2013 버전에도 동작함을 확인했다.

* Outlook에서는 "규칙" 이라는 기능을 제공하는데, 2016버전에서는 규칙에서 스크립트를 사용할 수 없다. Window의 registy를 수정해야 한다.

* 수정 방법은 https://www.slipstick.com/outlook/rules/outlook-2016-run-a-script-rules/  을 참조하거나,  EnableUnsafeClientMailRules.zip  파일을 다운로드 받으면 된다. (출처 : https://onedrive.live.com/?id=6117FC33D161D286%2189288&cid=6117FC33D161D286 )

* 사전에 Telegram Bot을 생성해야 한다. Bot 생성 방법은 http://krksap.tistory.com/836 에 상세하게 나와 있다.



1. Outlook에서 개발 도구 활성화하기 및 매크로 실행 설정


 

파일 - 옵션 - 리본 사용자 지정 - 개발도구 체크

 

 

 

 

파일 - 옵션 - 보안센터 - 보안센터 설정 - 매크로 설정 - 모든 매크로 실행 체크

 

 

 

 

파일 - 옵션 - 추가 기능 - Microsoft VBA for Outlook Addin 항목을 "COM 추가기능" 으로 이동

 

2. Outlook 개발 도구에서 VBA 스크립트 추가

개발 도구 - Visual Basic - Project1 - Microsoft Outlook 개체 - ThisOutlookSession 에 아래 코드 추가

 

 

*제목과 본문을 표시하되, 본문은 100자까지만 표시하도록 했다 ( Left(body, 100)  에 해당 ).

* 미리 받아뒀던  HTTP API는 bot으로 시작하며 ( : 을 포함하는), chatID는 숫자로 이루어져 있다. 아래와 같이 입력하면 된다.

 

 

 

 

3. Outlook 규칙 만들기

 

 

 

홈 - 규칙 - 규칙 만들기 - 고급옵션 클릭

* 메시지 수신시 받는 사람의 조건(좌)을 선택한 후, 이벤트 발생시 실행할 동작(우)를 선택하여 2번에서 등록한 스크립트를 등록한다

 

 

4. 새로운 메일 수신시 Telegram 알림 수신

 

 

* AlertTele는 내가 설정한 Telegram Bot의 이름이다. 2번의 스크립트에서 제목과 본문의 순서 등을 수정할 수 있다.


예전에는 Spring 프로젝트 시작하기에 설정이 반이라고 했다.

프레임웍 자체는 잘 되어 있지만, 버전 업그레이드를 하기 위해서 할 것이 많고, 기타 플러그인 설정하기가 힘들었기 때문이다.


하지만 혼자서 웹 프로젝트를 만들어보려 하니, 매우 쉬운 방법으로 Spring 프로젝트를 만들 수 있었다.

우선 많이 사용되는 Maven은 잘 알려져 있지만, pom.xml 파일이 너무 복잡하다는 사소한 단점이 있어서 이번에는 Gradle으로 Build 환경을 구축하기로 했다. 이 모든 것은 https://start.spring.io/ 에서 쉽게 프로젝트를 만들 수 있다.

기본적인 JDBC Driver로부터 mybatis와 같은 plugin도 한줄이면 프로젝트에 넣을 수 있다.

 


 

우선 이클립스는 설치했다는 가정 하에서 캡쳐 위주로 설명하겠다.

 

1. 이클립스 MarketPlace에서 BuildShip 설치

 -기존의 Gradle 플러그인 (Gradle IDE Pack)은 더이상 지원하지 않는다고 한다. 별 차이는 없겠지만, 권장하는 Buildship을 사용한다.


 


2. (선택) 이클립스 MarketPlace에서 SpringIDE 설치

 -기존 Spring에는 이클립스에 Tomcat 서버를 추가해서 Add/Remove 한 다음 서버를 구동했다. 하지만 이러한 수고를 줄이기 위해서 Springboot은 자체적으로 WAS를 가지고 있다 (Tomcat로 알고 있음). 이를 원활하게 사용하기 위해서는 Spring IDE 설치도 좋다.

 -설정을 변경해서 기존에 사용하던 Tomcat에서 구동할 수도 있다.

 

 

 

3. https://start.spring.io/ 에서 프로젝트 생성하기

 -앞에서 말한 바와 같이, 웹에서 클릭 몇번으로 꽤 많은 설정이 된 패키지 파일을 다운로드 받을 수 있다.

 

 

4. 다운로드 한 프로젝트 파일을 Import 한다

 -여기서부터는 기존 방식과 유사하다. Existing Gradle Project 로 프로젝트를 import 한다.

 

 

 

 

5. (2번을 사용한 경우) 내장 WAS를 사용해 즉시 프로젝트를 띄울 수 있다.

 -Boot Dashboard에서 start 버튼 클릭으로 기동이 가능하며, 포트는 src/main/resources 폴더의 application.properties 파일에서 server.port=8888 으로 포트를 지정해서 기동할 수 있다.

 

 

 

6. Gradle로 Build하기

 - 외부 WAS에서 기동하기 위해서는 jar 또는 war 파일로 export해야한다. Buildship에서는 UI로 쉽게 Build할 수 있도록 제공해준다.

 - Build한 파일은 build/libs 폴더에 생성된다.

 

 

 

 


 


서버는 한 대이고, 돌려야 할 웹 서비스들은 여러개인 상태에서 어플리케이션들은 다른 JDK 기반으로 개발되었다면..?


해답은 쉽지 않을 것이다.

다른 어플리케이션들의 JDK 버전을 올려 통일시키거나, 아니면 서버를 여러 개로 변경하거나.


이런 상황을 맞지 않기 위해서 Tomcat 기동시, JDK를 수동으로 지정할 수 있도록 하는 방안을 소개한다.

스포일러 하자면, Tomcat 실행 파일에 JAVA_HOME을 명시하는 것이다.


1. 준비

1-1 Portable JDK는 이전 포스트인 "Portable JDK 생성하기"를 참조하여 생성한다.

1-2 Tomcat8 파일을 다운로드 한다. ( http://tomcat.apache.org/download-80.cgi  /  64-bit Windows zip )

*Zip 파일을 선택한 이유는, 여러개의 WAS를 실행할 때를 대비해, 설치 경로를 직접 설정하기 위함이다.


2. Service.bat 수정

2-1 사용할 폴더에 Tomcat8을 압축 해제하고, bin 폴더의 service.bat 파일을 수정한다. 

2-2 주석처리 된 경로 아래 setlocal 이라는 문구가 보인다. set "SELF ~~  문구 사이에 아래와 같이 Portable JDK 경로를 입력한다

* 예시로 D:\tomcatDir\service1\13_jdk-8u65 의 위치로 가정함




3. Tomcat8 Service 등록


3-1 마지막으로, 아래와 같은 명령어로 Tomcat을 Window 서비스에 등록하면 된다.

      * 예시로 D:\tomcatDir\service1\bin 폴더에 service.bat 파일이 있다고 가정함

* 서비스로 등록해본 사람은 알겠지만, service는 service.bat 파일을 지칭하며, tomcat8Portable은 Window 서비스에 등록될 서비스 명이다. 목적에 맞게 변경해서 등록/관리하면 된다.





4. 기타

* 서비스로 등록하기 위해서 service.bat 파일을 수정했다. 하지만, startup.bat 파일을 통해서도 당연히 실행이 가능하다.

* startup.bat 파일에도 당연히 같은 위치에 JAVA_HOME을 지정하면 된다.


+ Recent posts