SMS+LMS 사용설명서 MSSQL + MYSQL (Table 연동방식) Insert 문장만으로귀사의전산시스템과연동하여 대량의문자메시지(SMS) 를저렴하고, 빠르고자동으로발송할수있는 문자메시지전송시스템을개발할수있습니다. 실행파일(exe) 파일을에디터로열어보시고 아이디, 비밀번호가노출되지않는지꼭확인해보시기바랍니다 2008. 11.
1. 발송 Table Table 명 Send_sms9 result_sms9 발송용 Table 용도 *) Insert 즉시발송Table로이동후삭제됨 결과용 Table *) 당월만자료보관 TABLE 명 : send_ sms9 항목칼럼명속성옵션설명 아이디 user_id varchar(20) 필수당사로부터부여받은 ID 발신번호 user_tel varchar(14) 필수발신자의전화번호 고객 ID custom_id varchar(20) 고객사시스템에서사용하는고객 ID 고객이름 Custom_nam varchar(20) 고객사시스템에서사용하는고객이름 수신번호 custom_tel varchar(14) 필수고객( 수신자) 휴대전화번호 문자메시지 msg varchar(80) 필수메세지 메시지종류 typ tinyint 1: SMS yk_time datetime 예 )'2006/12/25 18:30' 예약시간 *) 예약은한달이내만가능 예) 즉시발송 ( 영문 80 자) INSERT send_sms9 (user_id, user_tel, custom_id, custom_nam, custom_tel, msg) value ('test', '02-333-1234', 'abcd1234',' 홍길동', '011-123-1234', ' 연락바람') ; 예) 예약발송 INSERT send_sms9 (user_id, user_tel, custom_id, custom_nam, custom_tel, msg, yk_time) 11:12') ; 예) 장문발송 ( 영문 2000 자) INSERT INTO lms_insert value ('test', '02-333-1234', 'abcd1234',' 홍길동', '011-123-1234', ' 연락바람','2006/05/20 ( user_id, sub_id, custom_id, user_tel, custom_tel, custom_nam, yk_time, subject, msg ) VALUES ( 'richsoft','sub_id', 'custom_id', '010-xxxx-6432','010-xxxx-6432','nam', '', 'LMS- 제목', ' 리치소프트입니다.\LMS에홈페이지 Link 를걸면\http://www.tax2mail.com 홈페이지조회:::: 스 마트폰은됩니다 ' ) ;
예) mysql ( 즉시발송시 yk_time = now() INSERT INTO sms_insert ( user_id,user_tel,custom_id,custom_nam,custom_tel,msg,yk_time ) VALUES ( 'lbo','15666432','custom_id','custom_nam','010-xxxx-6432','test msg',now()); INSERT INTO lms_insert msg ) ( user_id, sub_id, custom_id, user_tel, custom_tel, custom_nam, yk_time, subject, VALUES ( 'lbo','sub_id', 'custom_id', '010-xxxx-6432','010-xxxx-6432','nam', now(), 'LMS- 제목', ' 리치소프트입니다.\LMS에홈페이지 Link 를걸면\http://www.tax2mail.com 홈페이지조회:::: 스마트폰은됩니다' ) ; 예) mysql ( 예약발송시 yk_time = 2011.11.03 13:00:00 ) INSERT INTO sms_insert ( user_id,user_tel,custom_id,custom_nam,custom_tel,msg,yk_time ) 13:00:00 ); VALUES ( 'lbo','15666432','custom_id','custom_nam','010-xxxx-6432','test msg', 2011.11.03 INSERT INTO lms_insert msg ) ( user_id, sub_id, custom_id, user_tel, custom_tel, custom_nam, yk_time, subject, VALUES ( 'lbo','sub_id', 'custom_id', '010-xxxx-6432','010-xxxx-6432','nam', 2011.11.03 13:00:00, 'LMS- 제목', ' 리치소프트입니다.\LMS에홈페이지 Link 를걸면\http://www.tax2mail.com 홈페이지조회:::: 스마트폰은됩니다' ) ; 예) 결과조회 (result_ 아이디) select * from result_test where user_id = 'xxxx' and result_code <> 99; 예) 웹으로잔액조회 http://www.server114.com/sms/sms_janek9.aspx?uid= 아이디&ret=* uid= 시용자아이디 ret=* 잔액만간단표시기타문자= 상세출력 *) 결과를받는샘플 ww1 = 'http://www.6432.co.kr/sms/sms_janek9.aspx?uid=lbo' txt = 'c:\pip.txt' ret = DeleteUrlCacheEntry (ww1) ret = URLDownloadToFileA (0, ww1,txt,0,0) txt 파일에잔액이있음
4. 결과 Table TABLE 명 : result_sms9 항목칼럼명속성설명 아이디 user_id varchar(20) 당사로부터부여받은 ID 발신전화번호 user_tel varchar(14) 발신자의전화번호 고객 ID custom_id varchar(20) 고객사시스템에서사용하는고객 ID 고객이름 Custom_nam varchar(20) 고객사시스템에서사용하는고객이름 고객전화번호 custom_tel varchar(14) 고객( 수신자) 휴대전화번호 문자메시지 msg varchar(80) 문자메세지 메시지종류 typ tinyint 1 : 문자메시지 6 : 장문메시지 예약시간 yk_time datetime Date + Time 전송결과 result_code tinyint 0 : 1 : 99 : 성공 실패 전송중 전송결과 result_msg varchar(30) 결과메시지 Insert 일시 i_time datetime Send Table에 Insert한일시 결과수신일시 r_time datetime 전송결과를수신한일시 Update 일시 u_time datetime 최종변경일시 *) 이 Table의어떤값이변경될때 항상 *) select systemtime을기록함 기준값 요금 fee2 numeric(05,1) 발송( 성공) 요금 건수 Kun2 integer 발송( 성공) 건수 기타 db_apply tinyint 고객사마음대로사용 *) 초기값 :0 *) 결과수신은 result_code <>99 인경우만 select 하시면됩니다. select * from result_test where result_code <> 99 and db_apply = 0 ; 5. 관련 DLL mssql 관련 dll은
http://www.server114.com 의프로그램자료실에서다운로드받으시기바랍니다. 6-1. ASP 코딩예제 OLEDB로연결하는방법 user_id = 'test' passwd = 'test' Connstring = "Provider=SQLOLEDB;Data Source=www.qrich.com;Initial Catalog=sms;" Connstring = Connstring + "User ID=' + user_id + "'; Connstring = Connstring + "Password='" + passwd + ; Set DB = Server.CreateObject("Adodb.Connection") DB.open Connstring ' 데이타베이스에저장한다. SQL ="INSERT INTO send_sms9 (user_id, SQL = SQL & "msg) values (" SQL = SQL &"'test1&"'" SQL = SQL &",'" & user_tel &"''" SQL = SQL &",'" & custom_nam &"''" SQL = SQL &",'" & custom_nam &"''" SQL = SQL &",'" & custom_tel &"''" SQL = SQL &",'" & msg &"'')" DB.Execute SQL DB.CLose Set DB=nothing user_tel, custom_id, custom_nam, custom_tel," 6-2. 비주얼베이직코딩예제 Option Explicit Private Db As ADODB.Connection Private Rs As ADODB.Recordset
Dim ConnString As String 'ConnString="DSN=xxxxUID=xxxPWD=xxx" ConnString ="Provider=SQLOLEDB;" ConnString = ConnString&"Data Source=www.qrich.com;" ConnString = ConnString&"Initial Catalog=sms" ConnString = ConnString&"User ID=test;" ConnString = ConnString&"Password=test;" '###########1.DSN 을설정하는경우 ' OLEDB 로연결하는방법 SetDb=NewConnection Db.open ConnString If Db.Errors.Count > 0 Then MsgBox Db.Errors MsgBox"DB Open 실패 " send.enabled = False Else send.enabled = True EndIf DimSqlAsString Sql ="INSERT INTO send_sms9 ( user_id, user_tel, custom_id, custom_nam, custom_tel, msg)" Sql=Sql&" VALUES('test'," 'id Sql=Sql&"'"&Text1.Text&"'," ' 발신번호 Sql=Sql&"'0012345'," ' 고객id Sql=Sql&"'"&Text3.Text&"'," ' 고객명 Sql=Sql&"'"&Text2.Text&"'," ' 수신번호 Sql=Sql&"'"&Text4.Text&"');" ' 문자메시지 Set Rs = Db.Execute(Sql) If Db.Errors.Count > 0 Then MsgBox Db.Errors EndIf SetRs=Nothing '' 꼭있어야합니다... SetDB=Nothing 6-3. 파워빌더코딩예제 Transaction sqlca1 Sqlca1 = create transaction
user_id = 'test' passwd = 'test' native driver로연결하는방법 sqlca1.servername ='www.qrich.com' sqlca1.database = 'sms' sqlca1.logid ='test' sqlca1.logpass = 'test' sqlca1.dbms = 'MSS Microsoft SQL Server' sqlca1.lock = "RU" sqlca1.autocommit = False sqlca1.dbparm = '' ODBC로연결하는방법 Connstring = "ConnectString='DSN=sms_odbc;" Connstring = Connstring + "UID=' + user_id + "'; Connstring = Connstring + "PWD='" + passwd + ; sqlca1.dbms = "ODBC" sqlca1.autocommit = False sqlca1.dbparm = Connstring Connect using sqlca1; INSERT INTO send_sms9 ( user_id, user_tel, custom_id, custom_nam, custom_tel, msg ) VALUES ( :user_id,:user_tel,:custom_id,:custom_nam,:custom_tel,:msg) using sqlca1 ; If sqlca1.sqlcode <> 0 then messagebox('error',sqlca1.sqlerrtext) End if Commit using sqlca1 ; disconnect using sqlca1; destory sqlca1;