반응형
델파이에서 idSMTP 이용하여 eMail Send 기능.
기존 Delphi7에서 Indy component 포함되어, idSMTP 이용해서 메일 보낼 수 있도록 했지만, SSL을 사용 하기 때문에 현재는 XE10에서 idSMTP 사용하여, 메일 보낼 수있는 방법 알려드리겠습니다.

저가 사용한 컴포넌트 -> IdSMTP, IdSSLIOHandlerSocketOpenSSL, IdMessage 입니다.
소스내용
function SendMail(peMailAddr,pSubject, pText : WideString) : WideString; var SMTP: TIdSMTP; SSL: TIdSSLIOHandlerSocketOpenSSL; MM: TIdMessage; begin //peMailAddr -> 받는 사람 eMail 주소( 예시 aaaa@rushmac.net, bbbb@rushmac.net) //pSubject -> 메일 제목 //pText -> 메일 본문 내용 글 result := ''; SMTP := TIdSMTP.Create(nil); SSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil); MM := TIdMessage.Create(nil); try //발송할 서버 정보 SMTP.Host := 'SMTP 서버명 주소'; SMTP.Port := SMTP 포트번호; SMTP.Username := eMail 주소; SMTP.Password := 발송할 eMail 패스워드; SMTP.IOHandler := SSL; SMTP.UseTLS := utUseExplicitTLS; SSL.Host := SMTP.Host; SSL.Port := SMTP.Port; // setup mail message MM.From.Address := 발송할 eMail주소; MM.Recipients.EMailAddresses := peMailAddr; MM.ContentTransferEncoding := 'base64'; MM.Subject := pSubject; with TIdText.Create(MM.MessageParts, MM.Body) do begin CharSet := 'utf-8'; // Body.Text := pText; Body.Add(pText); end; // send mail try try SMTP.Connect; SMTP.Send(MM); result := '0'; except end; finally if SMTP.Connected then SMTP.Disconnect; end; finally SMTP.Free; SSL.Free; MM.Free; end; end;
마무리
현재 델파이(XE10.3)에서는 아무런 문제 없이 서비스 하고 있지만, 델파이7에서는 SSL 인증 때문에 메일 SEND할 수가 없지만, XE버전에서 idSMTP eMail 발송 대해 DLL로 작업해서 DLL 호출 기능으로 사용하셔도 큰 문제 없이 서비스 할 수가 있습니다.
반응형
'Developers > Delphi[델파이]' 카테고리의 다른 글
[Delphi] 월말,전월(익월)1일 등등 Date 날짜 구하는 방법 (0) | 2020.08.05 |
---|---|
[Delphi] 숫자 관련함수 (0) | 2020.08.04 |
[Delphi Tip] 주민/사업자번호 유효성 체크 (0) | 2019.11.01 |