Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用WebDAV从Exchange Server 2003获取发件人IP地址_C#_Webdav_Exchange Server 2003 - Fatal编程技术网

C# 使用WebDAV从Exchange Server 2003获取发件人IP地址

C# 使用WebDAV从Exchange Server 2003获取发件人IP地址,c#,webdav,exchange-server-2003,C#,Webdav,Exchange Server 2003,我最近为我们公司编写了一个应用程序,通过使用WebDAV将注册电子邮件发送到Exchange 2003服务器上的收件箱来处理新闻稿注册请求。这一切都很好 现在我们已经意识到,出于审计目的,我们需要捕获注册请求发起地的ip地址。我的问题是,有没有办法通过我的WebDAV请求请求电子邮件发起者的原始ip地址 我已经浏览了和文档,没有看到一个字段,你可以用这个数据请求,除了可能。但是,当我使用请求中的路径向exchange服务器发出请求时,该属性的状态返回404 not found 它似乎有一个cli

我最近为我们公司编写了一个应用程序,通过使用WebDAV将注册电子邮件发送到Exchange 2003服务器上的收件箱来处理新闻稿注册请求。这一切都很好

现在我们已经意识到,出于审计目的,我们需要捕获注册请求发起地的ip地址。我的问题是,有没有办法通过我的WebDAV请求请求电子邮件发起者的原始ip地址

我已经浏览了和文档,没有看到一个字段,你可以用这个数据请求,除了可能。但是,当我使用请求中的
路径向exchange服务器发出请求时,该属性的状态返回404 not found

它似乎有一个
clientipaddress
属性,该属性将包含此信息,但该属性仅适用于仍在传输中的消息

以前是否有人必须这样做,并找到一种方法来拦截发起电子邮件的用户的ip地址?这可能对问题没有帮助,但我的WebDAV请求的格式如下:

string webdav =
    @"
    <?xml version=""1.0""?>
    <D:searchrequest xmlns:D = ""DAV:"">
        <D:sql>
           SELECT 
                ""DAV:displayname"", 
                ""urn:schemas:httpmail:fromemail"",
                ""urn:schemas:mailheader:subject"", 
                ""urn:schemas:httpmail:textdescription"",
                ""urn:schemas:mailheader:date""
           FROM 
                SCOPE('shallow traversal of ""{0}""')  
           WHERE
                ""DAV:isfolder"" = false AND 
                ""urn:schemas:httpmail:read"" = false
        </D:sql>
    </D:searchrequest>                 
    ";
字符串webdav=
@"
选择
“DAV:displayname”“,
“urn:schemas:httpmail:fromemail”“,
“urn:schemas:mailheader:subject”“,
“urn:schemas:httpmail:textdescription”“,
“”urn:schemas:mailheader:date“”
从…起
作用域(“{0}”的浅遍历)
哪里
“DAV:isfolder”“=false和
“urn:schemas:httpmail:read”“=false
";

这对SMTP的影响大于对Exchange/WebDAV的影响。这实际上取决于最终用户使用的电子邮件服务。SMTP可以在电子邮件到达目的地之前多次传递电子邮件。通常,每个跃点都会添加一个
Received:from
头,以及一些附加信息,如IP地址

但是,一些服务,如谷歌,不计算发送电子邮件的用户有一个跃点,并且原始IP地址是谷歌SMTP服务器。因此,您永远不会从电子邮件中知道最终用户的IP地址。然后,其他服务可以将最终用户的公共IP地址计算为第一跳。一些其他服务可能会向消息添加一个特殊的头,如
X-Sender-IP
X-origing-IP


因此,没有一种可靠的方法可以获得这些信息。部分原因与SMTP的分布式性质、网络邮件的流行以及一些隐私问题有关。如果此信息对您的审核至关重要,您可能需要设置一个简单的网络表单,将电子邮件发送到此收件箱,然后您可以在电子邮件正文中添加其他信息,如IP地址。

在您的问题中并不完全清楚,如果电子邮件通过SMTP发送到收件箱,发送它的用户的实际IP地址通常不可用。但是,您可以通过邮件标题获取一路上接触电子邮件的SMTP服务器。是的,它是SMTP。用户只是通过移动设备直接从电子邮件客户端发送电子邮件。