2014-09-29 3 views
0

우리는 IMAP 요청을 앞뒤로 통과하는 이메일 클라이언트와 서버 사이에 안티 바이러스와 유사한 프로그램을 작성하고 있습니다.IMAP 요청에서 메일 서버를 확인하는 방법이 있습니까?

요청한 이메일 도메인을 확인하는 IMAP 요청에 대한 방법이 있습니까? 우리는 우리를 사용하는 모든 회사를 공격하는 하나의 명명 된 서버를 선호합니다.

그렇지 않은 경우 동일한 서버를 가리키는 CNAME 레코드를 만들 수 있지만 CNAME이 연결할 서버의 이름을 가져 오는 중입니까?

감사 - 데이브

답변

2

우리는 앞뒤로 IMAP 요청을 전달 (일부를 스캔) 이메일 클라이언트와 서버 사이에 위치 안티 바이러스와 유사한 프로그램을 작성하고 있습니다.

재미있게 보내십시오. 특히 메일 클라이언트가 특정 바이트 범위에만 액세스하는 부분 요청 (썬더 버드는 큰 메일의 경우이 작업을 수행함). 또는 BODY [1]와 같은 조각을 가지고 MIME 헤더없이 본문 만 가져온다. 따라서 이것이 content-transfer-encoding base64인지 또는 무엇이든지 (사과 메일과 함께 흔하지 않음)인지 알 수 없다.

요청한 이메일 도메인을 확인하는 IMAP 요청에 대한 방법이 있습니까? 우리는 우리를 사용하는 모든 회사를 공격하는 하나의 명명 된 서버를 선호합니다.

IMAP를 사용하면 서버에 TCP 연결을 만들고 IMAP 프로토콜에서 서버 이름이 표시되지 않습니다. 서버 이름도 프로토콜 자체에는 중요하지 않습니다. 즉, 서버에 호스트 이름이없고 IP 주소 만있는 경우에도 동일하게 작동합니다.

서버 이름은 인증서의 이름을 확인하기 위해 이름이 필요하기 때문에 STARTTLS로 IMAP 또는 IMAP을 수행하는 경우에만 관련이 있습니다. 그리고 HTTP에는 동일한 IP상의 여러 서버를 구별하기위한 호스트 헤더가 있지만 IMAP에는 그러한 것이 없습니다. 여기에서는 로그인에 사용 된 사용자 이름으로 만 구별 할 수 있습니다.

+0

각각에 고유 한 서버 이름을 사용하는 경우 TCP 작성 세션에서 연결중인 서버의 이름을 가져올 수 있습니까? 추신 - 우리가 요청에서 볼 수있는 다른 아름다운 작은 문제? –

+0

TCP에서 호스트 이름에 대한 정보를 얻지 못합니다. DNS 역방향 조회를 시도 할 수도 있지만 단일 IP의 이름이 여러 개인 경우에는 도움이되지 않습니다. IMAP 프로토콜 자체에는 필요하지 않기 때문에 왜 이름이 필요한지 궁금합니다. 멋진 문제는 주니퍼 http://www.juniper.net/techpubs/en_US/junos12.1/topics/concept/utm-antivirus-full-application-protocol-scan-imap-understanding에서 설명한 한계를 살펴보십시오. html # scan-imap-limitations –

+0

아마도 여기에 뭔가 빠져 있습니다. 여러 회사에서 사용할 수있는이 서비스가있는 경우 전자 메일 클라이언트에서 요청할 때 해당 요청을 전달할 메일 서버를 알아야합니다. 예를 들어, 우리가 Acme Inc. 및 IBM에이 서비스를 제공하는 경우 전자 메일 클라이언트가 사용자 데이브에 대한 전자 메일을 요청할 때 연결할 때 어떤 메시지가 전달됩니까? ps - 링크를 가져 주셔서 감사합니다. –

관련 문제