Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Purpose of & How to Find NotificationServices.wsdl #108

Closed
MatthewPinheiro opened this issue Feb 14, 2019 · 2 comments
Closed

Purpose of & How to Find NotificationServices.wsdl #108

MatthewPinheiro opened this issue Feb 14, 2019 · 2 comments

Comments

@MatthewPinheiro
Copy link

Hi there!

I'm not exactly sure this is an issue beyond documentation (perhaps I'm requesting the documentation be clearer on this) but I neither understand the purpose of the NotificationServices.wsdl file nor where to find it (try as I might, no amount of googling clearly seems to provide answers to either).

Preferably both here and in the README.md, could there be some explanation of what exactly I'm looking for and why? Currently the README.md only says to google for it. Is this supposed to be an XML-based configuration file that extends the functions available to a node-ews instance?

Some amount of googling has provided a file which matches that name and extension, but based on the information within, those links seem too application-specific. For example, here is a NotificationService.wsdl file for emailvision's api. But given that certain attributes of this file are URLs pointing directly to emailvision's domain, I'm hesitant to think that this is the file I'm looking for (after all, I don't want to unintentionally send/pull any data to/from any source except my own Exchange server).

As for googling for information about the file, the most I can find is from Microsoft's own documentation here for the 2010 SDK. The relevant quote is as follows:

NotificationService.wsdl is located in the directory in which the Exchange 2010 Web Services SDK is installed, in the Samples\PushNotification\ folder.

However, I can't even figure out where to find an EWS SDK. Googling for this only results in links that 404 or to downloads for the EWS Managed API (which is only meant for .NET applications, to my understanding). Furthermore, is this SDK supposed to be installed on the Exchange Server itself? Or am I supposed to install it client-side?

Needless to say, I'm quite lost and would greatly appreciate any clarity regarding these issues!

@grinat
Copy link

grinat commented Jun 25, 2020

After few wasted days and hours i found worked NotificationServices.wsdl in php-ews :)

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 Microsoft Corporation. All rights reserved. -->
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  <wsdl:types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:import namespace="http://schemas.microsoft.com/exchange/services/2006/messages" schemaLocation="messages.xsd"/>
    </xs:schema>
  </wsdl:types>
  <wsdl:message name="SendNotificationSoapIn">
    <wsdl:part name="request" element="tns:SendNotification" />
  </wsdl:message>
  <wsdl:message name="SendNotificationSoapOut">
    <wsdl:part name="SendNotificationResult" element="tns:SendNotificationResult" />
  </wsdl:message>
  <wsdl:portType name="NotificationServicePortType">
    <wsdl:operation name="SendNotification">
      <wsdl:input message="tns:SendNotificationSoapIn" />
      <wsdl:output message="tns:SendNotificationSoapOut" />
    </wsdl:operation>
  </wsdl:portType>


  <wsdl:binding name="NotificationServiceBinding" type="tns:NotificationServicePortType">
    <wsdl:documentation>
      <wsi:Claim conformsTo="http://ws-i.org/profiles/basic/1.0" xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" />
    </wsdl:documentation>
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />

    <wsdl:operation name="SendNotification">
      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SendNotification" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>


  </wsdl:binding>

  <wsdl:binding name="NotificationServiceBinding12" type="tns:NotificationServicePortType">
    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />

    <wsdl:operation name="SendNotification">
      <soap12:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SendNotification" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

  </wsdl:binding>

  <wsdl:service name="NotificationServices">
    <wsdl:port name="NotificationServicePort" binding="tns:NotificationServiceBinding">
      <soap:address location="" />
    </wsdl:port>
  </wsdl:service>

</wsdl:definitions>

@MatthewPinheiro
Copy link
Author

@grinat I appreciate the answer, even over a year on. I ended up solving this issue on my own sometime after I posted my question, but I don't remember exactly how. I think I stumbled on the necessary file somewhere, but it looks like the file you posted would work as well.

I also realize now that I probably didn't need node-ews to accomplish what I was doing. My ultimate goal was just to read messages from an Exchange mailbox when they came in, and looking back I see I could've accomplished that much more easily using NPM libraries that connect to mailboxes through IMAP, rather than ones like this that connect via Microsoft's obsolescent, application-specific EWS API.

Just bringing that up for anyone else who may not realize there are easier ways to communicate with Exchange. I'm not sure what advantages EWS offers over IMAP, but I do know that it was painless for me to implement inbox subscriptions through IMAP, whereas with node-ews I had to resort to a polling solution.

Anyway, I'm closing this issue now. Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants