본문 바로가기

컴퓨터/파워빌더

파워빌더 - SMTP를 이용한 이메일 보내기

파워빌더에서 SMTP를 사용하여 간단하게 이메일을 보내는 예제입니다.
여러사람에게 메일을 보내실때는 Timer 이벤트를 사용하시되 이메일이 발송되는 시간을 고려하여 시간은 대략 20초에서 30초간격으로 보내시면 될듯합니다.


우선 첨부파일을 받으신후 아래와같이 윈도우 '시작메뉴 => 실행' 에서 dll를 등록합니다.




그다음 파워빌더 스크립트를 작성합니다...

//이메일 보내는 스크립트
OLEObject smtp

string ls_title,ls_from_addr,ls_to_addr,ls_attach

int li_rv

//오브젝트생성
smtp = CREATE OLEObject
li_rv = smtp.ConnectToNewObject("SoftArtisans.SMTPMail")
IF li_rv <> 0 THEN
MessageBox ( "ConnectToNewObject Error - SoftArtisans.SMTPMail", li_rv )
Return -1
END IF

ls_title = '이메일보내기 테스트'  //이메일 제목
ls_from_addr = 'send@hanmail.net'   //보내는 사람 이메일주소
ls_to_addr = 'recive@hanmail.net'   //받는사람 이메일주소

smtp.RemoteHost = 'mail.kornet.net'   //보내는 메일서버, 다른 host를 사용하셔도 됩니다.
smtp.CustomCharSet = 'ks_c_5601-1987'   //문자셋
smtp.ContentType = 'text'   // HTML 형식의 e-mail 일때는 html, 일반텍스트형식은 text 로지정
smtp.FromName = '보내는사람'   //보내는사람 이름
smtp.FromAddress = ls_from_addr
smtp.ReplyTo = ls_from_addr   //답장받을 주소 - 보통 보내는사람 메일주소.
smtp.AddRecipient(ls_to_addr,ls_to_addr)
smtp.Subject = ls_title
smtp.ContentTransferEncoding = 4
smtp.Live = TRUE
smtp.HtmlText = '메일내용'  //html 이나 text 형식

//첨부파일이 있을때...
ls_attach = 'c:\text.txt'   //첨부파일명
IF ls_attach <> '' OR IsNull( ls_attach ) THEN
   smtp.AddAttachment(ls_attach)   //첨부파일등록
END IF


IF smtp.SendMail = TRUE THEN
   messagebox('확인','이메일이 정상적으로 발송되었습니다..!!')
ELSE
   messagebox('에러','이메일 발송에 실패하였습니다..!!')
END IF

//버퍼를 지운다.
smtp.ClearAllRecipients()
smtp.ClearAttachments()
smtp.ClearBCCs()
smtp.ClearBodyText()
smtp.ClearCCs()
smtp.ClearExtraHeaders()
smtp.ClearRecipients()

SetPointer(Arrow!)
Destroy Smtp