프로그래밍/기타

문자메시지(SMS) 발송 모듈 설치 automail

p-a-r-k 2018. 4. 19. 16:01
반응형

설치 이유

  1. 회원 가입 축하, 유료 전환 유도, 이벤트 안내, 공지 등을 안내하기 위한 문자메시지 발송 기능 모듈 설치

설치 방법


  • Automail.zip 프로그램 설치

    1. http://www.maillink.co.kr/resource/downloadCenter/automail.zip 링크에서 최종 버전을 다운로드한다.
    2. 압축을 해제하면 소개 및 사용자 가이드, 개발자가이드 문서가 2개와 모듈방식(DB서버연동), 웹방식(자바스크립트) 디렉토리 2개가 있다. 이중에서 홀세일닥터는 모듈방식(DB서버연동) 방식을 사용한다.
    3. 모듈방식(DB서버연동) 폴더로 이동하면 ml_automail 폴더가 있는데 이를 C:\dev\ 폴더에 붙여넣기한다.
    4. ml_automail\bin\startmltran.bat 파일을 문서편집기를 이용하여 연다. 내용은 아래와 같이 수정한다.
    5. ml_automail\conf\ml_client.conf 파일을 문서편집기를 이용하여 연다. 내용은 아래와 같이 수정한다.
    6. ml_automail\lib 폴더에 https://www.microsoft.com/ko-kr/download/details.aspx?id=11774 사이트에서 다운로드한 sqljdbc42.jar 파일을 복사하여 붙여넣기 한다. 해당 lib 폴더에는 classes12.zip, ml_automail.jar, sqljdbc42.jar 파일 3개만 있으면 일단 동작한다.

startmltran.bat

@echo off
rem ##### JDK1.6 Directory #####
set JAVA_HOME="C:\dev\java\jdk1.8.0_152"
rem ###################################################

SET CLASSPATH=%CLASSPATH%;..\lib\ml_automail.jar
SET CLASSPATH=%CLASSPATH%;..\lib\classes12.zip
rem ########### Not using JDBC Driver ##########
rem SET CLASSPATH=%CLASSPATH%;..\lib\mysql-connector-java-3.1.8-bin.jar
rem SET CLASSPATH=%CLASSPATH%;..\lib\mysql-connector-java-3.1.8-bin.jar
rem SET CLASSPATH=%CLASSPATH%;..\lib\msbase.jar
rem SET CLASSPATH=%CLASSPATH%;..\lib\mssqlserver.jar
rem SET CLASSPATH=%CLASSPATH%;..\lib\msutil.jar
rem SET CLASSPATH=%CLASSPATH%;..\lib\Sprinta2000.jar
rem SET CLASSPATH=%CLASSPATH%;..\lib\postgresql-9.3-1102.jdbc4.jar
rem ########### MSSQL JDBC Driver ############
SET CLASSPATH=%CLASSPATH%;..\lib\sqljdbc42.jar

%JAVA_HOME%\bin\java -client -Dfile.encoding=euc-kr -mx128m com.maillink.automail.client.AutomailTranManager

ml_client.conf

#*********************************************************************
#
# 메일링크에서 부여받은 memberID를 기술하십시오.
#
#*********************************************************************
memberID="부여id"

#*********************************************************************
#
# DBMS 종류를 기술하십시오. 
# oracle, mssql, mysql, postgresql 중 하나를 사용하실 수 있습니다.
#
#*********************************************************************
dbVendor=mssql

#*********************************************************************
#
# DB Driver 종류를 기술하십시오. 
# (사용하실 dbDriver값은 주석처리를 해제해주십시오)
#*********************************************************************
#MS SQL Server (Microsoft JDBC Driver 4.0)
dbDriver=com.microsoft.sqlserver.jdbc.SQLServerDriver

#*********************************************************************
#
# JDBC Thin Driver의 프로토콜에 맞추어 DBMS 접속 URL을 기술하십시오. 
# (사용하실 dbUrl값은 주석을 해제해주십시오)
#
#*********************************************************************
#MS SQL Server
dbUrl=jdbc:sqlserver://127.0.01:1433;databaseName=automail

#*********************************************************************
#
# DBMS 접속 계정을 기술하십시오.
#
#*********************************************************************
dbUserName=automail_id

#*********************************************************************
#
# DBMS 접속 계정의 비밀번호를 기술하십시오.
#
#*********************************************************************
dbPasswd="설정 비밀번호"

#*********************************************************************
#
# DBMS의 설정 문자셋을 기술하십시오.
# Default는 EUC-KR입니다.
#
#*********************************************************************
dbCharset=EUC-KR
batchLoad=true

#*********************************************************************
#
# ML_AUTOMAIL_TRAN 테이블에 발송결과가 확정된 데이터가 머무는 시간이며 
# 단위는 시간입니다. 
# 예) 
# lifeTime=0 -> 데이터는 백업테이블로 이동하지 않습니다.
# lifeTiem=24 -> 발송결과가 확정된 데이터는 확정 후 24시간이 지난다음
# 백업 테이블로 이동합니다. 
#
#*********************************************************************
lifeTime=12

#*********************************************************************
#
# ML_AUTOMAIL_TRAN 테이블에 발송결과가 확정된 즉시 백업테이블로 데이터가 
# 이동되는지 여부입니다. 값이 true 이면 lifeTime 변수의 값에 상관없이
# 발송 결과가 확정된 즉시 백업테이블로 옮겨집니다.
# 그 이외의 값이면 lifeTime 변수의 값에 따라 백업테이블 이동 정책을
# 적용합니다.
# 기본값은 true 입니다.
#
#*********************************************************************
moveOnResult=true


  • Database 생성 및 설정

    1. automail 데이터베이스를 생성한다.
      1. Database name : automail
      2. General 탭에서 파일명칭은 데이터베이스, 로그 각각 automail.MDF, automail.LDF 로 명명하고, 각각 위치에 맞추어 설정한다.
      3. Options 탭에서 Collation 항목을 Korean_Wansung_CI_AS 로 설정한다. (한글 설정하지 않으면 메시지 발송시 한글이 포함되면 ???? 문자로 발송된다.)
      4. 저장을 눌러서 생성한다.
    2. automail 을 위한 계정을 추가한다.
      1. SQL Server → Security → Logins 에서 마우스 오른쪽 버튼 'New Login...'을 선택한다.
      2. General 탭에서 Login name 을 'automail_id' 로 설정한다.
      3. SQL Server authentication 으로 변경한다.
      4. Enforce password policy 를 체크해제한다.
      5. Default database 를 automail 을 선택한다.
      6. Default language 를 Korean 으로 설정한다.
      7. User Mapping 탭에서 automail 의 Map 을 체크하고, Default Schema 에서 dbo 를 선택한다.
      8. 저장을 눌러서 생성한다.
    3. id 에도 automail database 에 데이터를 추가할 수 있는 권한을 추가한다.
      1. SQL Server → Security → Logins 에서 id 에서 마우스 오른쪽 버튼 'Properties' 를 선택한다.
      2. User Mapping 탭에서 automail 의 Map 을 체크하고, Default Schema 에서 dbo 를 선택한다.
      3. 저장을 눌러 설정을 저장한다.


  • 테스트

    1. C:\dev\ml_automail\bin 폴더로 이동하여 커맨드 창을 띄우고, startmltran.bat 배치파일을 실행한다.
    2. 아래와 같은 문구가 출력되면 정상 작동하는 것이고, automail database 에 들어가서 tables 를 확인해 보면, ML_AUTOMAIL_MESSAGE, ML_AUTOMAIL_TRAN, ML_AUTOMAIL_TRAN_201801 같은 테이블이 자동 생성되어 있어야 한다.
    3. 아래와 같은 T-SQL 명령어를 이용하여 문자메시지가 정상적으로 전송되는지 확인한다.
startmltran.bat 실행 시

C:\dev\ml_automail\bin>startmltran.bat

Old data not found

Maillink Automail Transaction Manager v2.3 started..

Batch Load option enabled..

Synchronizing logs...

Done.

ResultWriter started...

단문메시지 전송 테스트 쿼리

INSERT INTO ML_AUTOMAIL_TRAN ( AUTOMAILID, CHANNEL, SMSCALLBACKNO, SMSPHONE, SMSMSG, SMSSUBTYPE, SENDTIME, GENDATE) VALUES

( 'AU-3909466', '2', '보낸번호', '받는번호', '정기세일이 진행중입니다.', '1',GETDATE(), GETDATE());


위와 같이 전송한 단문메시지가 정상적으로 전송되면 설치가 완료된 것이다.


  • 윈도우 스케줄러 기능을 이용한 서버 부팅 시 자동 실행

    1. 제어판 → 관리 도구 → 작업 스케줄러 를 선택하여 실행한다.
    2. 오른쪽 작업에서 작업 만들기를 클릭한다.
    3. 이름에 'AutoStart Automail' 을 입력한다. 설명에는 'Automail 부팅 시 자동 시작'을 써넣는다.
    4. 보안옵션에서 작업을 실행할 때 사용할 사용자 계정을 dbmanager 를 선택하고, 사용자의 로그온 여부와 관계없이 실행을 선택한다. 하위 옵션은 암호를 저장하지 않음은 체크해제한다.
    5. 트리거 탭 → 새로 만들기 → 작업시작은 '시작할 때' 를 선택하고, 작업 지연 시간 '5 분', 하단의 '사용' 을 체크하고 저장한다.
    6. 동작 탭 → 새로 만들기 → 동작은 '프로그램 시작', 프로그램/스크립트 'C:\dev\ml_automail\bin\startmltran.bat', 시작 위치(옵션)에는 'C:\dev\ml_automail\bin' 을 입력하고 저장한다.
    7. 조건 탭 → 모든 체크 박스를 해제한다.
    8. 설정 탭 → 요청 시 작업이 실행되도록 허용을 체크, 요청할 때 실행중인 작업이 끝나지 않으면 강제로 작업 중지를 체크 나머지는 체크 해제한다.
    9. 마지막으로 확인 버튼을 클릭하면 자동 실행을 위한 계정의 암호를 확인하고 정확히 입력하면 저장된다.
    10. 테스트는 만들어진 스케쥴을 실행으로 실행해볼 수 있는데, 이게 종료를 해도 제대로 종료되지 않는다. 그러므로 혹여 리부팅 등의 이슈가 있을 때, 중복으로 실행될 수 있으므로, 작업 관리자에서 확인이 필요하다.


참조 링크 또는 파일

  1. http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html (Java jdk download)
  2. http://www.maillink.co.kr/resource/downloadCenter/automail.zip (Maillink automail download)
  3. https://www.microsoft.com/ko-kr/download/details.aspx?id=11774 (MS SQL Server JDBC Driver download)


반응형