4. João Tito Lívio
15 Anos experiência em Tecnologias Microsoft
Helpdesk & Troubleshooting
TI/SI (Windows, Unix)
Pascal, Clipper
VBA, VB
.NET (C#, VB.NET)
Visual Studio Tools for Office
SharePoint Development/Administration
Consultor Sharepoint
Microsoft MVP
Office Systems Development (2002 – Presente)
Microsoft Certified Techology Specialist
SharePoint 2010, Application Development
5. Agenda
• Binding do Serviço e Manipulação de Mensagens
– O Serviço Autodiscover
– Análise de Código C#
– Métodos para Manipulação de Mensagens Exchange
– O Serviço em Ação
6. Exchange Web Services Managed API
Exchange Web Services Managed API 1.1 SDK
http://www.microsoft.com/download/en/details.aspx?id=13480
O QUE É?
O QUE É? Camada de Abstração
PORQUE UTILIZO? Fornecido em DLL
Comunicação Bidirecional com o Web Service do Exchange
Serviço de descoberta do Exchange Service (Endpoint)
Pode ser Usado na CLOUD ou On Premises
PORQUE UTILIZO? 3 Razões
Não tenho de adicionar uma Web Reference por SERVIDOR
Basta-me invocar os Métodos, Propriedades, etc.. da API
Facilita muito o Deploy
No Office 365 Só pode ser utilizado nos PLANOS (P), (E) e (EDUCAÇÃO) o (K) fica de fora
Live@Edu vai ser Migrado para o Office 365 mas a API Funciona da mesma forma
7. Exchange Web Services Managed API
DO QUE VAMOS FALAR A SEGUIR
› Binding (É um Método)
› ExchangeService (= New)
› ExchangeService Credenciais
› Autodiscover (= New)
› Valores a Propriedades
› Obtemos um ASMX
› ExchangeService = ASMX Url
› Retorna ExchangeService
› Autodiscover Service (Em Promenor)
› Items
› E-Mail Messages
› Folders
› File Attachment’s
8. EWS API – Diagrama de Classes
O QUE FALTA AQUI?
Gestão de Contas e Exchange
TUDO O QUE VÊM AQUI PODE SER FEITO POR POWERSHELL
9. Autodiscover Service
Esta caixa de Diálogo
do Outlook é Familiar?
O que vamos ver
Vai fazer exactamente
a mesma coisa
10. Autodiscover Service
• TRACE PARA A CLOUD
– Credenciais para a Caixa de Correio
– Prevenir que não vamos à nossa Active Directory
– Para obter o URL de Endpoint (asmx) para a Mailbox
O objeto SCP contêm a lista de URL’s para
o Serviço de Autodiscover na Floresta
https://amsprdXXXX.outlook.com/EWS/Exchange.asmx
11. Autodiscover Service SOAP
<Trace Tag="AutodiscoverConfiguration" Tid="10" Time="2011-08-02 16:30:13Z">
Host returned enabled endpoint flags: Legacy
</Trace>
<Trace Tag="AutodiscoverConfiguration" Tid="10" Time="2011-08-02 16:30:13Z">
Trying to get Autodiscover redirection URL from http://autodiscover.DOMINIO.PT/autodiscover/autodiscover.xml.
</Trace>
<Trace Tag="AutodiscoverConfiguration" Tid="10" Time="2011-08-02 16:30:13Z">
Redirection URL found: 'https://autodiscover-s.OUTLOOK.COM/autodiscover/autodiscover.xml'
</Trace>
<Trace Tag="AutodiscoverConfiguration" Tid="10" Time="2011-08-02 16:30:13Z">
Determining which endpoints are enabled for host autodiscover-s.outlook.com
</Trace>
<Trace Tag="AutodiscoverRequestHttpHeaders" Tid="10" Time="2011-08-02 16:30:14Z">
POST /autodiscover/autodiscover.svc HTTP/1.1
Content-Type: text/xml; charset=utf-8
Accept: text/xml
User-Agent: ExchangeServicesClient/14.02.0051.000
</Trace>
<Trace Tag="AutodiscoverRequest" Tid="10" Time="2011-08-02 16:30:14Z" Version="14.02.0051.000">
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:a="http://schemas.microsoft.com/exchange/2010/Autodiscover"
xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<a:RequestedServerVersion>Exchange2010</a:RequestedServerVersion>
<wsa:Action>http://schemas.microsoft.com/exchange/2010/Autodiscover/Autodiscover/GetUserSettings</wsa:Action>
14. Links Interessantes
Exchange Server Developer Center
http://msdn.microsoft.com/en-us/exchange/default.aspx
Blog EWS e PowerShell Toolkit
http://exchws.wordpress.com/
Projecto Codeplex - Live@Edu and Office 365 Exchange Online Library
http://eol.codeplex.com/
18. Próximas reuniões presenciais
• 24/09/2011 – Setembro (2 anos!)
• 29/10/2011 – Outubro
• 19/11/2011 – Outubro (Coimbra)
• 26/11/2011 – Novembro
Reserva estes dias na agenda! :)