Skip to content
This repository was archived by the owner on Jun 18, 2024. It is now read-only.
This repository was archived by the owner on Jun 18, 2024. It is now read-only.

The server cannot service this request right now. Try again later. #644

@lliaoliao

Description

@lliaoliao

package com.mtuskerbase.app.widget.mailExchange;

import java.net.URI;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import microsoft.exchange.webservices.data.core.ExchangeService;
import microsoft.exchange.webservices.data.core.PropertySet;
import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;
import microsoft.exchange.webservices.data.core.enumeration.notification.EventType;
import microsoft.exchange.webservices.data.core.enumeration.property.WellKnownFolderName;
import microsoft.exchange.webservices.data.core.enumeration.service.DeleteMode;
import microsoft.exchange.webservices.data.core.response.GetItemResponse;
import microsoft.exchange.webservices.data.core.response.ServiceResponseCollection;
import microsoft.exchange.webservices.data.core.service.item.EmailMessage;
import microsoft.exchange.webservices.data.core.service.schema.ItemSchema;
import microsoft.exchange.webservices.data.credential.ExchangeCredentials;
import microsoft.exchange.webservices.data.credential.WebCredentials;
import microsoft.exchange.webservices.data.notification.ItemEvent;
import microsoft.exchange.webservices.data.notification.NotificationEvent;
import microsoft.exchange.webservices.data.notification.NotificationEventArgs;
import microsoft.exchange.webservices.data.notification.StreamingSubscription;
import microsoft.exchange.webservices.data.notification.StreamingSubscriptionConnection;
import microsoft.exchange.webservices.data.notification.StreamingSubscriptionConnection.INotificationEventDelegate;
import microsoft.exchange.webservices.data.notification.StreamingSubscriptionConnection.ISubscriptionErrorDelegate;
import microsoft.exchange.webservices.data.notification.SubscriptionErrorEventArgs;
import microsoft.exchange.webservices.data.property.complex.FolderId;
import microsoft.exchange.webservices.data.property.complex.ItemId;
import microsoft.exchange.webservices.data.property.complex.MessageBody;

public class EmailRunner2 implements INotificationEventDelegate, ISubscriptionErrorDelegate{

public static ExchangeService exchangeService = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
private static StreamingSubscriptionConnection conn;
public static StreamingSubscription subscription;

public static void main(String[] args) {

	EmailRunner2 runner = new EmailRunner2();
    runner.connect();
}

public void connect() {
	
	
    ExchangeCredentials credentials = new WebCredentials("***", "%**@s5!");
    exchangeService.setCredentials(credentials);
    try {
        exchangeService.setUrl(new URI("###"));
        WellKnownFolderName sd = WellKnownFolderName.Inbox;
        FolderId folderId = new FolderId(sd);

        ArrayList<FolderId> folder = new ArrayList<FolderId>();
        folder.add(folderId);

        subscription = exchangeService.subscribeToStreamingNotifications(folder, EventType.NewMail);

        conn = new StreamingSubscriptionConnection(exchangeService, 30);
        conn.addSubscription(subscription);
        conn.addOnNotificationEvent(this);
        conn.addOnDisconnect(this);
        conn.open();

        EmailMessage msg = new EmailMessage(exchangeService);
        msg.setSubject("Testing Streaming Notification on 16 Aug 2016");
        msg.setBody(MessageBody.getMessageBodyFromText("Streaming Notification "));
        msg.getToRecipients().add("gary.zhang@hatchsolution.com");
        msg.send();

        boolean loop = true;
        int i = 0;
        while (loop) {
            Thread.sleep(20000);
            msg.send();
            if (i++ > 100) {
                loop = false;
            }
        }
        System.out.println("end........");
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

@Override
public void subscriptionErrorDelegate(Object sender, SubscriptionErrorEventArgs args) {
    System.out.println("error...." + args.getException());

}

@Override
public void notificationEventDelegate(Object sender, NotificationEventArgs args) {
    System.out.println("Notification event....");
    // First retrieve the IDs of all the new emails
    List<ItemId> newMailsIds = new ArrayList<ItemId>();

    Iterator<NotificationEvent> it = args.getEvents().iterator();
    while (it.hasNext()) {
        ItemEvent itemEvent = (ItemEvent) it.next();
        if (itemEvent != null) {
            newMailsIds.add(itemEvent.getItemId());
        }
    }

    if (newMailsIds.size() > 0) {
        // Now retrieve the Subject property of all the new emails in one
        // call to EWS.
        ServiceResponseCollection<GetItemResponse> responses;
        try {
            responses = exchangeService.bindToItems(newMailsIds, new PropertySet(ItemSchema.Subject));

            System.out.println("count=======" + responses.getCount());

            for (GetItemResponse response : responses) {
                System.out.println("count=======" + responses.getClass().getName());
                System.out.println("subject=======" + response.getItem().getSubject());
                response.getItem().delete(DeleteMode.MoveToDeletedItems);
                // Console.WriteLine("subject====" + response.Item.Subject);
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

}

The server cannot service this request right now. Try again later. help!!!!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions