【问题标题】:Trouble getting email attachment from Exchange从 Exchange 获取电子邮件附件时遇到问题
【发布时间】:2010-04-15 20:53:18
【问题描述】:

我收到错误消息“远程服务器返回错误:(501) 未实现。”当我尝试使用 HttpWebRequest.GetResponse() 使用 GET 方法从交换中获取电子邮件附件时。我已尝试更改 HttpVersion,但我认为这不是权限问题,因为我可以搜索收件箱。

我知道我的凭据是正确的,因为它们用于使用 HttpWebRequest.Method = Search on the inbox (https://mail.mailserver.com/exchange/testemailaccount/Inbox/) 获取 HREF。

HREF = https://mail.mailserver.com/exchange/testemailaccount/Inbox/testemail.EML/attachment.csv

示例代码:

HttpWebRequest req = (System.Net.HttpWebRequest)  HttpWebRequest.CreateHREF);                
req.Method = "GET";
req.Credentials = this.mCredentialCache;
string data = string.Empty;
using (WebResponse resp = req.GetResponse())
{
    Encoding enc = Encoding.Default;
    if (resp == null)
    {
        throw new Exception("Response contains no information.");
    }

    using (StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.ASCII))
    {
        data = sr.ReadToEnd();
    }
}

【问题讨论】:

    标签: c# .net exchange-server exchange-server-2007


    【解决方案1】:

    有两种可能的解决方案:

    1. 尝试使用 POP3 协议而不是 HTTP。您可以尝试自己实现(例如参见 "How to POP3 in C#"),或者您可以使用支持 SSL 的现成 POP3 库(例如 POP3Client)或查看 this question

    2. 您的错误也可能是因为未处理 https 连接。尝试添加此代码:

      ServicePointManager.CertificatePolicy = new AcceptAllCertificatePolicy();

    这是类的实现:

    internal class AcceptAllCertificatePolicy : ICertificatePolicy
    {
        public AcceptAllCertificatePolicy()
        {
        }
        public bool CheckValidationResult(ServicePoint sPoint, X509Certificate cert,
        WebRequest wRequest, int certProb)
        {
            //Allways accept
            return true;
        }
    }
    

    【讨论】:

      【解决方案2】:

      您似乎正在对 Exchange 2007 使用 WebDAV。默认情况下,在 Exchange 2007 中,WebDAV 未启用。所以你可以:

      1) 在您的 Exchange 2007 Server 上启用 WebDAV。

      2) 切换到使用 Exchange Web 服务。

      我会推荐选项 2,因为您使用的是 C#,因为有 Managed EWS API 这使得这种任务比使用 WebDAV 简单得多。它还允许您最终以完全删除 WebDAV 的 Exchange 2010 为目标。

      【讨论】:

        猜你喜欢
        • 2015-08-10
        • 2014-06-02
        • 2020-11-06
        • 2016-10-21
        • 2012-05-14
        • 2022-08-18
        • 2011-12-05
        • 1970-01-01
        • 2018-06-18
        相关资源
        最近更新 更多