반응형
델파이에서 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 |