Проблема с получением вложения электронной почты от Exchange

Я получаю сообщение об ошибке «Удаленный сервер вернул ошибку: (501) Не реализовано». когда я пытаюсь использовать HttpWebRequest.GetResponse(), используя метод GET, чтобы получить вложение электронной почты от обмена. Я попытался изменить HttpVersion и не думаю, что это проблема с разрешениями, поскольку я могу искать в папке «Входящие».

Я знаю, что мои учетные данные верны, поскольку они используются для получения HREF с помощью HttpWebRequest.Method = Search в папке «Входящие» (https://mail.mailserver.com/exchange/testemailaccount/Inbox/).

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();
    }
}

person Jim Reineri    schedule 15.04.2010    source источник


Ответы (2)



Похоже, вы используете WebDAV для Exchange 2007. По умолчанию в Exchange 2007 WebDAV не включен. Итак, вы можете:

1) Включите WebDAV на сервере Exchange 2007.

2) Переключитесь на использование веб-служб Exchange.

Я бы рекомендовал вариант 2, так как вы используете C#, так как есть Управляемый API EWS, которые значительно упрощают эту задачу по сравнению с использованием WebDAV. Это также позволяет вам в конечном итоге настроить таргетинг на Exchange 2010, где WebDAV был полностью удален.

person Joe Doyle    schedule 11.05.2010