30
소소소소소 [email protected] 소소소소 : API 소 TOOL.exe

소프트메일 [email protected] 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

  • View
    230

  • Download
    11

Embed Size (px)

Citation preview

Page 1: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

소프트메일[email protected]

고급강좌 : API 와 TOOL.exe

Page 2: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

Page 3: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

Part I API메라크 API

Page 4: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

API? 어떨 때 사용할까 ?!

길동씨 메일박스 사용량이 10MB 가

넘는 사람들의 명단을 좀 줄 수 있나요 ?

우린 10,000 유저가 넘는데 !

Page 5: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

대부분의 작업은 자동으로 할 수 있음

API 를 사용 – API 는 쉬움

자신의 프로그램이나 스크립트에서 사용가능하며 . 계정 , 도메인 , 외부 계정 , 메라크 환경설정에 접속할 수 있음

길동씨 걱정마세요

Page 6: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

API 기초 API = Application Programming Interface

메라크 두 가지 방식의 API 제공 : direct API COM objects => 기본 이용

두 방식 모두 대부분의 언어에서 사용할 수 있음 Delphi C Visual Basic PHP ASP …

Page 7: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

이용가능한 인터페이스API.DLL

Direct API Direct API

MerakCOMMerakCOM

Page 8: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

COM 오브젝트 MerakCOM.APIObject

주 환경설정 관련 api MerakCOM.DomainObject

도메인 설정 관련 api MerakCOM.AccountObject

계정에 관련된 api 로 계정생성 , 수정 , 삭제 MerakCOM.RemoteAccountObject

원격 계정 관리 MerakCom.ScheduleObject

일정관리 & 그룹웨어 관련 api MerakCom.StatisticsObject

서비스 상태 , 통계에 관한 오브젝트 공통 속성 - LastErr

Page 9: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

MerakCom.APIObject

APIObject – 환경설정 BackupConfig, RestoreConfig

configuration reload and AV update UpdateConfiguration, ReloadServices

spam indexing SpamIndexNow

settings configuration Get/SetProperty

domain operations NewDomain, RenameDomain, OpenDomain, DeleteDomain,

Save

PHP 샘플

<?$com = new COM("MerakCOM.APIObject"); $oldtemp = $com->GetProperty(“C_TempPath“);

$com->SetProperty(“C_TempPath“, “c:\temp\”);$com->SaveConfig;$com->UpdateConfiguration;$temp = $com->GetProperty(“C_TempPath“);

echo ‘Old temp folder:’ . $oldtemp;echo ‘New temp folder: ’ . $temp; $com->Release;$com = null;?>

Page 10: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

도메인 관리 내용 New, Open, Save, Delete

계정 운영 : 계정 조회 및 검색

GetAccountCount, GetAccountIndexByAlias, GetAccount

관리 내용 NewAccount, OpenAccount, DeleteAccount

MerakCom.DomainObjectASP 샘플<%Set DomainObj =

Server.CreateObject("MerakCOM.DomainObject")DomainObj.Open(“domain.com")Quota = DomainObj.GetProperty("D_DiskQuota")

Response.Write(“Quota is " & Quota)Set DomainObj = Nothing%>

Page 11: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

계정 관리 내용 New/Open/Save/Delete

설정 Get/SetProperty

도메인 내에서 모든 계정에 적용 FindInit, FindNext, FindDone

메시지 변환 POP3 <-> IMAP 변환 MailboxConvertMessages

MerakCom.AccountObject계정 추가 샘플

Set api = Server.CreateObject("MerakCOM.APIObject")

Set api_Account = Server.CreateObject("MerakCOM.AccountObject")

api.Init("d:\merak\")

api_Account.new("[email protected]")

api_Account.SetProperty "u_name", "demodemo1"

api_Account.SetProperty "u_password", "1234"

api_Account.SetProperty "u_mailbox", "demodemo1"

api_Account.Save()

response.write api_Account.LastErr

계정 삭제 샘플

Set api = Server.CreateObject("MerakCOM.APIObject")

Set api_Account = Server.CreateObject("MerakCOM.AccountObject")

api.Init("d:\merak\")

api_Account.open("[email protected]")

api_Account.delete()

response.write api_Account.LastErr

Page 12: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

API 변수 및 주의사항 모든 API 변수는 아래의 파일에 포함되어 있으니 참조

..\merak\API\Delphi\apiconsts.pas ..\merak\API\comapi.txt ..\merak\API\classes.txt

ASP 소스코드에서의 주의사항 메라크 폴더의 api.dll 의 권한에 IUSR 와 IWUAM 사용자를 추가하고 Full

권한을 주어야 함 , 그리고 IIS 재시작

문제발생시 계정추가 , 변경 시에 “ IceWarpServer.APIObject error '8000ffff‘” 와 같은

오류가 발생하면 다음 섹션의 TOOL.exe 를 사용하여 운영하면 안정적으로 관리 가능

Page 13: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

Part II 메일발송 컴포넌트홈페이지에서 메라크 smtp 를 사용한

메일발송

Page 14: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

메일발송을 위한 도구

메일발송을 위한 컴포넌트 종류 IceWarpCOM – 무료제공 (smtp 만 제공 ) EasyMail – 유상 (smtp, pop3, imap4…) MailBee - 유상 (smtp, pop3, imap4…) CDOSYS

프로그램이나 스크립트에서 메일을 발송하려면 smtp 컴포넌트를 사용하여야 합니다 . 일반적으로 asp 에서 메일을 발송하려면 별도의 컴포넌트를 사용하여야 합니다 . Jsp 의 경우 기본 smtp 함수를 사용하여도 됩니다 .

Page 15: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

IcewarpCom

IceWarpCOM.Mailer object 메라크 구매고객에게 무상제공되는 smtp 컴포넌트 발신자 메일주소가 반드시 존재

IceWarpCOM.IMMessage object 메라크 메신저에서 메시지 발송 발신자 계정이 반드시 존재 수신자는 발신자의 친구목록에 등록되어있어야 함

Page 16: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

IceWarpCom - PHP 에서 메일발송$com = new COM("IceWarpCOM.Mailer");

$com->RemoteHost = "localhost";

$com->Helo = "localhost";

$com->FromName = “Mr.Employee";

$com->FromAddress = "admin@localhost";

$com->AddRecipient("[email protected]", "Mr.Boss");

$com->Subject = "Hello";

$com->BodyText = "Body";

if (!$com->SendMail()) echo $com->Response;

$com->Release();

$com = null;

Page 17: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

IceWarpCom - asp 에서 메일발송

Dim objMail, toMail

Set objMail = CreateObject("IceWarpCOM.Mailer")

tomail = "[email protected]"

objMail.RemoteHost = "localhost"

objMail.Helo = "localhost"

objMail.FromName = " 소프트메일 "

objMail.FromAddress = “[email protected]"

objMail.AddAddress tomail, " 소프트메일 "

objMail.CharSet = "euc-kr"

objMail.IsHTML = "1"

objMail.Subject = " 테스트메일 "

objMail.BodyText =" 테스트 메일 "

objMail.AppendBodyFromFile(“c:\ 테스트지 \default.asp")

objMail.AddAttachment(“c:\ 테스트 \test.zip")

objMail.SendMail

Response.Write " 성공했습니다 !"

Set objMail = Nothing

Page 18: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

EasyMail - asp 에서 메일발송Set mailObj = Server.CreateObject("EasyMail.SMTP.6")

mailObj.LicenseKey = “ 라이센스키 "mailObj.MailServer = "localhost"mailObj.MailPort = 25mailObj.Charset = "euc-kr"mailObj.EventLogging = 1mailObj.BodyFormat = 1mailObj.AutoWrap = 0

message1 = "<HEAD><title> 메라크 메일 서버 </title></HEAD><BODY>"message1 = message1 & “ " & Name & "</b> 님 안녕하세요 ~~~ <BR>"message1 = message1 & “</body><html>"

mailObj.BodyFormat = 1mailObj.From = " 소프트메일 "mailObj.FromAddr = “[email protected]"

mailObj.Subject = " 테스트 메일입니다 "mailObj.AddRecipient Name, Mail, 1mailObj.AddRecipient " 다운로드 ", "[email protected]", 1

mailObj.BodyText = message1 x = mailObj.Send

mailObj.Clear(1)

Page 19: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

JSP 에서 메일발송 샘플Subject = new String(subject.getBytes("euc-kr"),"8859_1");

Contents=new String(contents.getBytes("euc-kr"),"8859_1");

SmtpClient sm=new SmtpClient("mail.abc.co.kr");

sm.from("[email protected]");

sm.to(e_mail);

PrintStream msg=sm.startMessage();

msg.print("To: ");

msg.println(e_mail);

msg.print("Subject: ");

msg.println(subject);

msg.println("MIME-Version: 1.0 ");

msg.println("Content-Type : text/html;charset=\"euc-kr\"");

msg.println("Content-Transfer-Encoding: 8bit ");

msg.println(contents);

sm.closeServer();

Page 20: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

Asp, php 등으로 만들어진 웹페이지에서 메일 발송이 가능

홈페이지와 db 와 연동된 자동 안내 메일 발송

고객화된 뉴스레트 발송용

무료 컴포넌트

결론

Page 21: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

Part III 커맨드라인 도구TOOL.EXE 를 사용한 메라크 통합

Page 22: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

커맨드라인 도구 – TOOL.EXE배치파일이나 커맨드라인에서 직접 수행하여 메일서버를 관리할 수 있으며 사용자 프로그램이나 웹에 쉽게 통합할 수 있음

계정 , 도메인의 생성 , 수정 , 삭제

기본 매개변수로 제어 (+API 상수 )

import/export

비밀번호 정책 위반자 목록

Page 23: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

Tool.exe 의 장점 Tools.exe 는 어떤 API 변수를 처리할 수 있음

단순화된 사용 방법 코드 대신에 API 이름 사용

더욱 직관적

유연성 확보 메라크 관리자 콘솔을 사용할 필요가 없음

배치파일에 커맨드 사용가능 -> 스크립트 프로그래밍 가능

명령어 , 오브젝트 , 매개변수 , 옵션으로 구성

원격지 메라크 접속 가능

Page 24: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

Tool 함수함수

CreateDeleteModifyDisplayExportImportFile

새 항목을 생성 – 도메인 / 계정 추가기존 항목 삭제 – 도메인 / 계정 삭제옵션 값 변경표준 출력으로 옵션 값 화면에 표시특정 옵션 값을 파일로 내보내기.csv 파일에서 어떤 옵션 값을 가져오기커맨드를 포함한 파일을 로드 - 스크립트

Page 25: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

Tool 매개변수

매개변수AccountDomainTablesSystemUserstatisticsBatch

EmailDomainService[parameters]Fromdate todatebatchfile

[parameters][parameters]Connection string

Filterstring outputfile[prefix]

Page 26: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

tool.exe 예제 도메인 추가 : tool create domain 도메인 d_description “ 도메인설명” 계정 추가 : tool create account 메일주소 u_password “ 비밀번호” u_comment “

계정설명” … 기타 매개변수… 계정 삭제 : tool delete account 메일주소 계정 보기 : tool display account *@* ( 또는 @domain.com) 계정 가져오기 : tool import account users.txt u_mailbox u_name u_password 계정 내보내기 :

tool export account *@* > text.txt tool export account *@* u_password u_name u_emailalias U_admin…

시스템 정보 : tool display system st_smtp_failedspam TOOL 도움말 :

tool.exe –h tool.exe search account tool.exe search domain

Page 27: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

Asp 페이지에서의 Tool 사용 계정 추가 : <%

Set sh = Server.CreateObject("wscript.shell")

sh.run "c:\merak\tool.exe create account 메일주소 u_password 비밀번호“ … ‘ex) tool create account [email protected] u_password 1234

%>

계정 수정<%

Set sh = Server.CreateObject("wscript.shell")

sh.run "c:\merak\tool.exe modify account 메일주소 “ api 변수” “변경할 값” … ‘ ex) tool modify account [email protected] u_password 1234

%>

계정 삭제<%

Set sh = Server.CreateObject("wscript.shell")

sh.run "c:\merak\tool.exe delete account 메일주소“ ‘ ex) tool delete account [email protected]

%>

Page 28: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

실제 구현 코드 예제 각 항목을 변수로 처리<%email1 = "[email protected]"

pass1 = "123456"value1 = "d:\merak\tool.exe create account " & email1 & " u_password " & pass1

 Set SH = Server.CreateObject("wscript.shell")'sh.run "d:\merak\tool.exe create account [email protected] u_password 1234"sh.run value1

%>

Page 29: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

Tool 매개변수 샘플

시스템 변수는 merak\api\delphi\apiconst.pas 참조

Page 30: 소프트메일 info@softmail.co.kr 고급강좌 : API 와 TOOL.exe. 순서 메라크 API 메일발송 컴포넌트 커맨드라인 도구 - TOOL.exe

모든 도메인과 계정을 관리

대부분의 환경설정을 구성

즉시 적용

메라크 관리를 위한 프로그램 /스크립트를 임의로 제작할 수 있음

자신의 메시지 처리 모듈을 제작할 수 있음 ( 통계 , 메시지 커스터마이징 )

개발자 외의 담당자에겐 커맨드라인 도구 제공 (tool.exe)

결론