ExchangeWebServiceMailBinding Class

[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]

Represents the mail binding for Exchange Web Services.

Namespace:  Microsoft.ServiceModel.Channels.Mail.ExchangeWebService
Assembly:  Microsoft.ServiceModel.Channels.Mail.ExchangeWebService (in Microsoft.ServiceModel.Channels.Mail.ExchangeWebService.dll)

Syntax

'Declaration
Public NotInheritable Class ExchangeWebServiceMailBinding _
    Inherits MailBindingBase
'Usage
Dim instance As ExchangeWebServiceMailBinding
public sealed class ExchangeWebServiceMailBinding : MailBindingBase
public ref class ExchangeWebServiceMailBinding sealed : public MailBindingBase
[<SealedAttribute>]
type ExchangeWebServiceMailBinding =  
    class
        inherit MailBindingBase
    end

Remarks

This is a sealed class that represents the mail binding that is used to construct an Exchange Web Services transport for the desktop.

The base class, MailBindingBase, contains most of the functionality used by this class.

This class includes a collection of binding elements such as an encoding element and a transport binding element. The predefined encoding element for this class is TextMessageEncodingBindingElement, and the predefined transport binding element is ExchangeWebServiceMailTransportBindingElement.

The desktop computer that is using the Exchange Web Services transport is assumed to be online. Only the mail transport that is used in Windows Mobile devices supports scenarios in which the device might be offline for a while.

Note

This class is included with the .NET Compact Framework version 3.5, but it requires the .NET Framework version 3.0 or later at run time.

Examples

The following example shows how to use the ExchangeWebServiceMailBinding class in the context of sending and receiving messages.

The custom serializer is not specific to the Exchange Server mail transport and is not included in this example.


Class Program
    Private Shared ServerAddress As New Uri("https://128.128.1.1")
    Private Shared ClientEmailAddress As String = "someone@example.com"
    Private Shared Password As String = "password"

    Private Shared ChannelName As String = "Channel1"
    Private Shared DestinationEmailAddress As String = "someone@fabrikam.com"

    Private Shared serializer As New CFMessagingSerializer(GetType(String))


    Shared Sub Main(ByVal args() As String) 
        ' For applications on the device, use WindowsMobileMailBinding
        ' instead of ExchangeWebServiceMailBinding.
        Dim binding As ExchangeWebServiceMailBinding
        Dim factory As IChannelFactory(Of IOutputChannel)
        Dim listener As IChannelListener(Of IInputChannel)
        Dim output As IOutputChannel
        Dim input As IInputChannel
        Dim bpc As BindingParameterCollection
        Dim message As Message
        Dim str As String

        ' For applications on the device, use WindowsMobileMailBinding.
        binding = New ExchangeWebServiceMailBinding(ServerAddress, New NetworkCredential(ClientEmailAddress, Password))
        bpc = New BindingParameterCollection()

        factory = binding.BuildChannelFactory(Of IOutputChannel)(bpc)
        factory.Open()
        output = factory.CreateChannel(New EndpointAddress(MailUriHelper.Create(ChannelName, DestinationEmailAddress)))
        output.Open()

        message = System.ServiceModel.Channels.Message.CreateMessage(MessageVersion.Default, "urn:Test", "Hello, World!", serializer)
        output.Send(message)

        output.Close()
        factory.Close()

        listener = binding.BuildChannelListener(Of IInputChannel)(MailUriHelper.CreateUri(ChannelName, ""), bpc)
        listener.Open()
        input = listener.AcceptChannel()
        input.Open()

        message = input.Receive()
        str = message.GetBody(Of String)(serializer)

        Console.WriteLine("Received message: {0}", str)

        input.Close()
        listener.Close()

        binding.Close()

    End Sub
End Class
class Program
{
    private static Uri ServerAddress = new Uri("https://128.128.1.1");
    private static string ClientEmailAddress = "someone@example.com";
    private static string Password = "password";

    private static string ChannelName = "Channel1";
    private static string DestinationEmailAddress = "someone@fabrikam.com";

    private static CFMessagingSerializer serializer = new CFMessagingSerializer(typeof(string));

    static void Main(string[] args)
    {
        // For applications on the device, use WindowsMobileMailBinding
        // instead of ExchangeWebServiceMailBinding.
        ExchangeWebServiceMailBinding binding;
        IChannelFactory<IOutputChannel> factory;
        IChannelListener<IInputChannel> listener;
        IOutputChannel output;
        IInputChannel input;
        BindingParameterCollection bpc;
        Message message;
        string str;

        // For applications on the device, use WindowsMobileMailBinding.
        binding = new ExchangeWebServiceMailBinding(ServerAddress, new NetworkCredential(ClientEmailAddress, Password));
        bpc = new BindingParameterCollection();

        factory = binding.BuildChannelFactory<IOutputChannel>(bpc);
        factory.Open();
        output = factory.CreateChannel(new EndpointAddress(MailUriHelper.Create(ChannelName, DestinationEmailAddress)));
        output.Open();

        message = Message.CreateMessage(MessageVersion.Default, "urn:Test", "Hello, World!", serializer);
        output.Send(message);

        output.Close();
        factory.Close();

        listener = binding.BuildChannelListener<IInputChannel>(MailUriHelper.CreateUri(ChannelName, ""), bpc);
        listener.Open();
        input = listener.AcceptChannel();
        input.Open();

        message = input.Receive();
        str = message.GetBody<string>(serializer);

        Console.WriteLine("Received message: {0}", str);

        input.Close();
        listener.Close();

        binding.Close();
    }
}

Inheritance Hierarchy

System.Object
  System.ServiceModel.Channels.Binding
    Microsoft.ServiceModel.Channels.Mail.MailBindingBase
      Microsoft.ServiceModel.Channels.Mail.ExchangeWebService.ExchangeWebServiceMailBinding

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Version Information

.NET Compact Framework

Supported in: 3.5

See Also

Reference

ExchangeWebServiceMailBinding Members

Microsoft.ServiceModel.Channels.Mail.ExchangeWebService Namespace