17

나는 EWS API를 사용하여 이메일을 보내십시오, 나는 다음과 같은 오류 얻을 :Exchange 웹 서비스 API 401 승인되지 않은 예외

ExchangeService exchangeService = new ExchangeService(ExchangeVersion.Exchange2007_SP1); 

//WebService Uri 
try 
{ 
    exchangeService.Url = new Uri("https://exchangeserver/ews/exchange.asmx"); 
} 
catch (Exception ex) 
{ 
    throw new Exception(string.Format("WebService Uri:" + ex)); 
} 

//Credentials 
try 
{ 
    exchangeService.Credentials = new WebCredentials("[email protected]", "pwd", "domain"); 
} 
catch (Exception ex) 
{ 
    throw new Exception(string.Format("Credentials:" + ex)); 
} 

//Send a mail 
try 
{ 
    EmailMessage message = new EmailMessage(exchangeService); 
    message.Subject = "Test"; 
    message.Body = "Test"; 
    message.ToRecipients.Add("[email protected]"); 
    message.Save(); 
    message.Send(); 
} 
catch (Exception ex) 
{ 
    throw ex; 
} 
:

The request failed. The remote server returned an error: (401) Unauthorized.

내 코드는 다음과 같다 (message.Send();에서를)

이 문제와 관련하여이 사이트의 다른 게시물을 읽었지만 문제점을 해결할 수 없습니다. 이 변경

+1

이 질문을하면 내 경력을 구할 수있었습니다! – Chookoos

+0

내 기쁨 :) !! – GwenGuts

+0

EWS 연결이 이전에 작동 한 후 작동하지 않는 경우 암호가 만료 된 것처럼 간단 할 수 있으므로 변경해야합니다. – RenniePet

답변

29

시도 :이에

exchangeService.Credentials = new WebCredentials("[email protected]", "pwd", "domain"); 

:

exchangeService.Credentials = new WebCredentials("user", "pwd", "domain"); 

언젠가 로그인 자격 증명이 구성 어떻게 교환/액티브 디렉토리에 따라 달라집니다. 사용자 @ 도메인 또는 도메인 \ 사용자 일 수 있습니다.

+0

안녕하세요, 팁 주셔서 감사합니다! 그것은 위대한 작품! 이제 EWS API를 통해 이메일을 보낼 수 있습니다 :). – GwenGuts

+0

우리는 'domain \ username'으로 로컬에서 작업했지만 외부에서는 도메인과 사용자 이름을 분리해야했습니다. – jtimperley

+0

간단하지만 그러한 지침 없이는 몇 시간이 걸렸을 것이므로이 대답은 얻은 것 이상의 가치가 있습니다. 24 시간 이내에 수정 될 것입니다. ;) –

1

같은 문제에 대한 해결책을 찾는 데 많은 시간이 걸렸습니다. 필자의 경우, IIS 사이트의 EWS 가상 디렉터리에 허용 된 URL 목록을 추가해야했습니다. IIS 관리로 이동하여 기본 웹 사이트에서 EWS 노드를 클릭 한 다음 요청 필터링을 두 번 클릭합니다. URL 탭으로 이동하고 오른쪽에서 URL 허용을 클릭하십시오. 서비스를 호출 할 URL을 입력하십시오 (예 : example.com/ews/ 또는 server.example.com/ews/

또한 유사한 문제와 관련하여 모든 호스트 (*)를 winrm 트러스트 된 호스트에 추가해야했습니다 (기본적으로 로컬 IP 만있었습니다) 나열).

HTH.