C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[74273] 답변 진심으로 감사드립니다.
[] 3729 읽음    2017-03-12 00:25
감사합니다. 친절하고 상세히 또다시 답변에 매우 감사드립니다.

제가.. 빌더6만 써본 초보에다가..
업무에 필요한 것들만 간단한것만 만들어 사용하는 (그것도 3년에 1번 만들까말까 합니다.)
프로그래밍쪽으로는 문외한이라 .. 속이 탓는데

해결이 되어 감사합니다.

해외에서 근무하신다니.. 부러우면서도.. 대단스럽습니다.

다시한번 감사합니다.

한국에 오시면 회(저는 부산에 살고있어서)등 맛있는 음식을 대접해드리고 싶습니다.

언제 오실때 이메일 주세요 .

jhcho.san@gmail.com

감사합니다.

초행길 님이 쓰신 글 :
: 저도 이 문제로 고생을 했었습니다.
: 5~6년 전에 만든 프로그램이 잘 돌다가, 약 2~3년전 어느 순간부터 지메일을 이용해서 메일을 보내는 부분에서 문제가 있었습니다.
:
: 지금 기억하는 당시의 사항은,, 인터넷을 제공하는 업체에 따라서 약간 설정을 달리해야 한다는 것 이었습니다.
: ( 참고로, 제가 있는 곳은 미국 뉴욕입니다. 이곳에서는 인터넷 서비스를 제공하는 업체를 대부분,   타임워너 라는 곳 과 버라이죤 이라는 업체 중에서 선택합니다. )
: 아래 올려 드렸던 소스는, 버라이죤이라는 곳을 이용할 경우에 정상 작동됩니다.
:
: 버라이죤에서는
: stPort = "465" ;
: Form1->IdSMTP1->UseTLS  = utUseImplicitTLS ;
:
: 타임워너에서는
: stPort = "587" ;
: Form1->IdSMTP1->UseTLS  = utUseExplicitTLS;
:
: 이렇게 했던 기억이 납니다.
:
: 참고하시라고, 프로그램을 올려드리겠습니다. ( 제 컴 환경은, Win10, RAD Studio 10.1 Berlin 입니다. )
: 소스에서 위에 적어 놓은 세팅 부분을 이리저리 조합하면서 테스트 해 보세요.
:
:
: 즐 프 하세요.
:
:
:
:
:
: 라이손레종ㅎ 님이 쓰신 글 :
: : 초행길님 답변감사합니다.
: : 말씀하신 dll을 찾아서 곁에 두니.. 이번엔 다른 쇼메시지가 뜹니다..
: : 내용에 꽤 길고.. 무얼 의미하는지 모르겠습니다..
: : 혹시나 싶어 로그인 상태에서 해보고..
: : 제가 저에게 보내기도 해보고 다른사람에게 보내기도 해봤지만.. 결과가 같습니다..
: :
: : 캡쳐파일을 첨부합니다..
: :
: :
: : 초행길 님이 쓰신 글 :
: : : 실행파일이 있는 곳에 libeay32.dll 과 ssleay32.dll 파일이 필요합니다.
: : : (http://docwiki.embarcadero.com/RADStudio/Berlin/en/OpenSSL#32-bit_and_64-bit_Windows 를 참조하시거나, 또는 구글링으로 찾으실 수 있습니다.)
: : : 이메일에 첨부파일을 같이 보내시려면,  #include <IdAttachmentFile.hpp>  를 해 주셔야 합니다.
: : :
: : : IdSMTP1, IdSSLIOHandlerSocketOpenSSL1, IdMessage1 콤포넌트들을 폼 에 올려 놓으시고
: : :
: : : //---------------------------------------------------------------------------
: : : void __fastcall TForm1::Button1Click(TObject *Sender)
: : : {
: : :
: : :     String stQuery, stCClist, stBCClist, stHost, stPort, stMyEmail, stMyPassword, stFile, stMyClientEmail ;
: : :
: : :     stHost = "smtp.gmail.com"  ;
: : :     stPort = "465" ;
: : :     stMyEmail = "MyEMail@gmail.com" ;
: : :     stMyPassword = "MyPassword" ;
: : :
: : :         stMyClientEmail = "myClient@client.com" ;
: : :     stCClist  = "eMail1@test.com,eMail2@test.com" ;
: : :     stBCClist =  "mySecondEmail@mycompany.com" ;
: : :     stFile    = "c:\\Temp\\MyPhoto.jpg" ;
: : :
: : :     Form1->IdSMTP1->Disconnect() ;
: : :     Form1->IdSSLIOHandlerSocketOpenSSL1->MaxLineAction        = maException ;
: : :     Form1->IdSSLIOHandlerSocketOpenSSL1->SSLOptions->Method     = sslvSSLv23 ;
: : :     Form1->IdSSLIOHandlerSocketOpenSSL1->SSLOptions->Mode     = sslmUnassigned ;
: : :     Form1->IdSSLIOHandlerSocketOpenSSL1->SSLOptions->VerifyDepth = 0 ;
: : :     Form1->IdSSLIOHandlerSocketOpenSSL1->Destination = stHost + ":" + stPort ;
: : :     Form1->IdSSLIOHandlerSocketOpenSSL1->Host         = stHost ;
: : :     Form1->IdSSLIOHandlerSocketOpenSSL1->Port         = StrToInt(stPort) ;
: : :
: : :     Form1->IdSMTP1->IOHandler = Form1->IdSSLIOHandlerSocketOpenSSL1 ;
: : :     Form1->IdSMTP1->AuthType = satDefault;
: : :
: : :     Form1->IdSMTP1->UseTLS  = utUseImplicitTLS ;   // 위에서 포트를  465 로 지정했을 경우...
: : :     /*
: : :         // utNoTLSSupport -> 25  and do not assign the SSL IOHandler;
: : :         // utUseImplicitTLS -> 465 for google ;
: : :         // utUseExplicitTLS -> 587 for google ;
: : :         // utUseRequireTLS ;
: : :     */
: : :     Form1->IdSMTP1->Host     = stHost ;
: : :     Form1->IdSMTP1->Port        = StrToInt(stPort) ;
: : :     Form1->IdSMTP1->Username = stMyEmail ;
: : :     Form1->IdSMTP1->Password = stMyPassword ;
: : :
: : :     Form1->IdMessage1->Clear() ;
: : :     Form1->IdMessage1->ClearHeader() ;
: : :     Form1->IdMessage1->ClearBody() ;
: : :     Form1->IdMessage1->MessageParts->Clear() ;
: : :     Form1->IdMessage1->Body->Clear() ;
: : :     Form1->IdMessage1->CharSet = "utf-8";
: : :     Form1->IdMessage1->From->Address = stMyEmail ;
: : :     Form1->IdMessage1->Recipients->EMailAddresses = stMyClientEmail ;
: : :
: : :     Form1->IdMessage1->CCList->EMailAddresses     = stCClist ;
: : :     Form1->IdMessage1->BccList->EMailAddresses    = stBCClist;
: : :
: : :     Form1->IdMessage1->Subject = "메일 제목" ;
: : :     Form1->IdMessage1->Body->Add( "메일 내용" ) ;
: : :
: : :     if ( stFile.Length() > 1 ) {
: : :         Form1->IdMessage1->ContentType = "multipart/form-data";
: : :         TIdAttachmentFile(IdMessage1->MessageParts, stFile);  // #include <IdAttachmentFile.hpp>  // 첨부파일 추가
: : :     } ;
: : :
: : :     try {
: : :         IdSMTP1->Connect() ;
: : :
: : :         Form1->IdSMTP1->Authenticate();
: : :         Form1->IdSMTP1->Send(IdMessage1);
: : :     }  __finally {
: : :         Form1->IdSMTP1->Disconnect();
: : :     } ;
: : :
: : : }
: : : //---------------------------------------------------------------------------
: : :
: : :
: : :
: : : 라이손레종ㅎ 님이 쓰신 글 :
: : : : 네 안녕하세요.. Intotheblue님의 답글을 보고서 시도를 해보았긴 했었습니다..
: : : : 빌더 6으로하면.. 명령어가 달라서.. 안되었고.. 인디만 버젼올려서하니.. 뭔가.. 문제있는지..
: : : : 인디자체에 문제가 생겼고.. 그래서.. 빌더9를 공수해서 해보았지만.. 안되었습니다..
: : : :
: : : : 방금은 혹시나 해서 빌더 10을 공수해서.. 해보았습니다.. 다행히 컴파일은 되지만..
: : : : 역시나 메일은 가질않습니다..
: : : :
: : : : 아래는 컴파일 해본 코드입니다..
: : : :
: : : :
: : : : void __fastcall TForm1::Button1Click(TObject *Sender)
: : : : {
: : : :     IdMessage1->From->Text = "abcd";
: : : :     IdMessage1->Recipients->EMailAddresses = "abcd@gmail.com";
: : : :     IdMessage1->Body->Add( "test");  // 메일 내용
: : : :     IdMessage1->Subject = "test";  // 제목
: : : :
: : : :     if (IdSMTP1) {
: : : :         IdSMTP1->Host = "smtp.gmail.com";  // 받는 smtp 서버
: : : :         IdSMTP1->Username= "abcd@gmail.com";
: : : :         IdSMTP1->Password= "abcdpass" ;
: : : :         IdSMTP1->Port = 465;
: : : :         IdSMTP1->AuthType = satDefault;
: : : :         IdSMTP1->UseTLS          = utUseImplicitTLS;
: : : :
: : : :         IdSSLIOHandlerSocketOpenSSL1->PassThrough       = FALSE;
: : : :         IdSSLIOHandlerSocketOpenSSL1->Destination       = "smtp.gmail.com:465" ;
: : : :         IdSSLIOHandlerSocketOpenSSL1->SSLOptions->Method = sslvTLSv1;
: : : :         IdSSLIOHandlerSocketOpenSSL1->SSLOptions->Mode   = sslmClient;
: : : :
: : : :         IdSMTP1->Connect();  // 10초
: : : :         IdSMTP1->Authenticate();
: : : :
: : : :         try {
: : : :
: : : :
: : : :           IdSMTP1->Send(IdMessage1);
: : : :           MessageDlg("succ.", mtWarning, TMsgDlgButtons() << mbOK, 0);
: : : :
: : : :         }
: : : :         __finally {
: : : :           IdSMTP1->Disconnect();
: : : :         }
: : : :     }
: : : : }
: : : :
: : : : 컴파일이 되고 실행하면..
: : : : SSL IOHandler is required for this setting. 이라는 쇼메시지가 뜹니다..
: : : : 이래저래 다해본거 같은데.. 무엇이 문제인지 모르겠습니다..
: : : :
: : : :
: : : : Intotheblue 님이 쓰신 글 :
: : : : : 제가 예전에 gmail 로 테스트 해서 올린 코드가 있습니다..
: : : : : 보셨다는 코드가 이건지 모르겠네요.
: : : : : 제가 테스트 했을때는 잘 됐습니다.
: : : : :
: : : : : http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=73604
: : : : :
: : : : :
: : : : : 라이손레종ㅎ 님이 쓰신 글 :
: : : : : : 안녕하세요.. 한참을 고민하다가.. 답이 없어.. 전문가분들께 문의를 해야겠다 싶어.. 왔습니다.
: : : : : : 질문전에 메일 보내는 방법을 검색을 해보았는데..
: : : : : : 방법이 2종류 이더라고요.. NMSMTP 방법과 indy 방법..
: : : : : :
: : : : : : 제가 빌더6을 사용하고 있습니다..
: : : : : :
: : : : : : NMSMTP의 예제를 실행해 보았습니다. gmail을 사용하려 합니다.
: : : : : : Connection 부분 에서는 Connected라 뜨고.. 잘 연결 된거 같습니다.
: : : : : : Sending E-Mail 부분에서.. To : 주소적고. 메일내용 적고 Send를 클릭하면
: : : : : :
: : : : : : 530 5.7.0 Must issue a STARTTLS command first.
: : : : : : f21sm11453923pff.48 - gsmtp
: : : : : :
: : : : : : 이렇게 쇼메시지가  나옵니다.. 포럼에 검색해보면 관련 내용은.. 없어서.. 구글을 찾아 보았으나..
: : : : : : 저에겐.. 무리였습니다..
: : : : : :
: : : : : : 그리하여.. indy로도 해보려 했으나.. indy는 예제가 없어 누군가의 답글 코드를 보고서 해보았으나..
: : : : : : 되지를 않았습니다..
: : : : : :
: : : : : : ... 답변 부탁드리겠습니다..
: : : : : :
: : : : : : 예제를 첨부파일에 올렸습니다..

+ -

관련 글 리스트
74251 메일 보내기 NMSTMP , Indy 라이손레종ㅎ 3550 2017/03/09
74252     Re:메일 보내기 NMSTMP , Indy Intotheblue 3525 2017/03/09
74256         Re:Re:메일 보내기 NMSTMP , Indy 라이손레종ㅎ 3577 2017/03/09
74258             Re:Re:Re:메일 보내기 NMSTMP , Indy 초행길 4429 2017/03/10
74264                 Re:Re:Re:Re:메일 보내기 NMSTMP , Indy 라이손레종ㅎ 3668 2017/03/10
74270                     Re:Re:Re:Re:Re:메일 보내기 NMSTMP , Indy 초행길 3769 2017/03/11
74273                         답변 진심으로 감사드립니다. 3729 2017/03/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.