1. 네이버에서 IMAP/SMTP 사용을 사용함으로 설정했습니다.
2. 실행파일이 있는곳에 libeay32.dll , ssleay32.dll 파일도 복사해 두었습니다.
3. 이후 프로그램을 짜서 실행하면 다음과 같은 에러가 발생됩니다.
Socket Error #10060 Connection timed out.
소스는
void __fastcall TMainForm::Button2Click(TObject *Sender)
{
String stQuery, stCClist, stBCClist, stHost, stPort, stMyEmail, stMyPassword, stFile, stMyClientEmail ;
stHost = "smtp.naver.com" ;
stPort = "465" ;
stMyEmail = 내네이버메일
stMyPassword = 내네이버메일비번
stMyClientEmail = 보내는메일주소
stCClist = 보내는메일주소참조
stBCClist = 주소3
stFile = "c:\\Temp\\test.hwp" ;
IdSMTP1->Disconnect() ;
IdSSLIOHandlerSocketOpenSSL1->MaxLineAction = maException ;
IdSSLIOHandlerSocketOpenSSL1->SSLOptions->Method = sslvSSLv23 ;
IdSSLIOHandlerSocketOpenSSL1->SSLOptions->Mode = sslmUnassigned ;
IdSSLIOHandlerSocketOpenSSL1->SSLOptions->VerifyDepth = 0 ;
IdSSLIOHandlerSocketOpenSSL1->Destination = stHost + ":" + stPort ;
IdSSLIOHandlerSocketOpenSSL1->Host = stHost ;
IdSSLIOHandlerSocketOpenSSL1->Port = StrToInt(stPort) ;
IdSMTP1->IOHandler = IdSSLIOHandlerSocketOpenSSL1 ;
IdSMTP1->AuthType = satDefault;
IdSMTP1->UseTLS = utUseImplicitTLS ; // 위에서 포트를 465 로 지정했을 경우...
/*
// utNoTLSSupport -> 25 and do not assign the SSL IOHandler;
// utUseImplicitTLS -> 465 for google ;
// utUseExplicitTLS -> 587 for google ;
// utUseRequireTLS ;
*/
IdSMTP1->Host = stHost ;
IdSMTP1->Port = StrToInt(stPort) ;
IdSMTP1->Username = stMyEmail ;
IdSMTP1->Password = stMyPassword ;
IdMessage1->Clear() ;
IdMessage1->ClearHeader() ;
IdMessage1->ClearBody() ;
IdMessage1->MessageParts->Clear() ;
IdMessage1->Body->Clear() ;
IdMessage1->CharSet = "utf-8";
IdMessage1->From->Address = stMyEmail ;
IdMessage1->Recipients->EMailAddresses = stMyClientEmail ;
IdMessage1->CCList->EMailAddresses = stCClist ;
IdMessage1->BccList->EMailAddresses = stBCClist;
IdMessage1->Subject = "메일 제목" ;
IdMessage1->Body->Add( "메일 내용" ) ;
if ( stFile.Length() > 1 ) {
IdMessage1->ContentType = "multipart/form-data";
TIdAttachmentFile(IdMessage1->MessageParts, stFile); // #include <IdAttachmentFile.hpp> // 첨부파일 추가
} ;
try {
IdSMTP1->Connect() ;
IdSMTP1->Authenticate();
IdSMTP1->Send(IdMessage1);
} __finally {
IdSMTP1->Disconnect();
} ;
}
검색해서 위의 소스를 붙여 넣고 테스트 해보니 작동이 안되서 도움을 요청합니다.
|