IMAP4를 사용하여 메일 서버를 구축해야합니다. 연결될 때 메일을 클라이언트에 "푸시 (push)"해야합니다. IMAP IDLE을 지원하지 않는 Delphi XE6 및 Indy 10.6.0.5122를 사용합니다. 인디 구성 요소에 "푸시 (push)"방법을 사용할 수 있습니까? 그렇지 않다면 새 메일이 존재하는지 주기적으로 묻는 서버를 "푸시 (push)"로 대체 할 수 있습니까? 아니면 나쁜 생각입니까? 도움이되는 모든 답변에 감사드립니다.Delphi - 푸시 방식으로 Indy 구성 요소를 확장하십시오.
답변
귀하가 말한 것처럼 Indy does not currently support IDLE
이지만 추가 작업을 통해 수동으로 구현할 수 있어야합니다. 클라이언트 측에
TIdIMAP4.SendCmd()
이 상황에서 작동 할 경우 잘 모르겠습니다)의 응답을 읽으려는
IDLE
명령을 보낼
TIdIMAP4.IOHandler.WriteLn()
를 호출
IOHandler.ReadLn
IDLE
꺼짐
서버 측에
의 TIdIMAP4Server.CommandHandlers
컬렉션 IDLE
에 대한 항목을 추가하고에 OnCommand
핸들러를 할당 답장을 보내, 필요한 경우 클라이언트가와 (IDLE
를 꺼질 때까지 당신은 클라이언트 소켓에 항목을 밀어 수 있습니다 DONE
명령을 사용하거나 소켓을 닫음).
코드 예제가 없습니다. IDLE
의 작동 방식에 대한 자세한 내용은 RFC 2177을 참조하십시오.
고맙습니다. 제 작품에서 양자 점프입니다. TIdIMAP4Server 구성 요소를 사용하는 기능적 서버의 몇 가지 코드 예가 있습니까? –
@ WojciechPawłowski 아니요, 아니요 –
좋아, 질문이 하나 더 있습니다. emailarchitect에서 만든 "EAGetMail POP3/IMAP4 구성 요소"에 대한 경험이 있습니까? 그렇다면 더 나은 옵션은 무엇입니까? - 인디를 확장하거나 비 자유 구성 요소를 사용합니까? –
안녕하세요. https://stackoverflow.com/help/how-to-ask를 참조하십시오. – Rob