2014-09-29 52 views
0

我们正在编写一个类似于反病毒的程序,该程序位于电子邮件客户端和服务器之间来回传递IMAP请求(并扫描一些内容)。在IMAP请求上,有没有办法确定邮件服务器?

IMAP请求中是否有一种方法可以确定该请求适用于哪个电子邮件域?我们希望有一台命名服务器,所有使用我们的公司都会受到影响。

如果不是,我们可以创建一个指向同一服务器的CNAME记录,但是由于CNAME提取了它所连接的服务器的名称?

谢谢 - 戴夫

回答

2

我们正在编写类似的防病毒的电子邮件客户端和服务器通过IMAP请求来回(和扫描一些)之间坐镇的程序。

玩得开心。特别是对于邮件客户端只访问特定字节范围的部分请求(雷鸟对较大的邮件执行此操作)。或者对像BODY [1]这样的片段感兴趣,在这些片段中只有没有MIME头部的主体,因此不知道这是否是内容传输编码base64或其他(不常见的苹果邮件)。

在IMAP请求中有没有一种方法可以确定请求的电子邮件域?我们希望有一台命名服务器,所有使用我们的公司都会受到影响。

使用IMAP,您可以建立到服务器的TCP连接,并且在IMAP协议中不显示服务器名称。服务器名称对于协议本身并不重要,即如果服务器没有主机名称但只有IP地址,则它的工作原理也是一样的。

仅当您使用STARTTLS执行IMAP或IMAP时,服务器名称才是相关的,因为您需要某个名称来验证证书中的名称。尽管HTTP具有主机头来区分同一IP上的多个服务器,但IMAP不存在这种情况。在这里您只能通过用于登录的用户名来区分。

+0

如果我们为每个服务器设置一个唯一的服务器名称,我们可以从TCP创建会话中获取它所连接的服务器的名称吗? ps - 我们会在请求中看到其他可爱的小问题吗? – 2014-09-29 17:08:49

+0

从TCP你不会得到有关主机名的任何信息。您可以尝试进行DNS反向查找,但如果单个IP有多个名称,则这不起作用。我想知道为什么你需要这个名字,因为IMAP协议本身并不需要它。至于可爱的问题 - 请看Juniper描述的限制http://www.juniper.net/techpubs/en_US/junos12.1/topics/concept/utm-antivirus-full-application-protocol-scan-imap- understanding。 html#scan-imap-limitations – 2014-09-29 17:20:21

+0

也许我在这里错过了一些东西。如果我们有多个公司可以使用的服务,那么当他们从他们的电子邮件客户端发出请求时,我们需要知道将该请求转发到哪个邮件服务器。例如,如果我们向Acme Inc.和IBM提供此服务,当电子邮件客户端连接向用户dave询问电子邮件时,我们会转发哪些内容? ps - 感谢您的链接。 – 2014-09-29 17:23:13

相关问题