我需要在CRM中集成Outlook公司电子邮件。这是使用java EWS API。 我阅读了EWS的微软文档,但我仍然有一些问题,也许有人可以提供帮助。 首先,我需要连接ExchangeService
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2)
ExchangeCredentials credentials = new WebCredentials(email, password)
service.setCredentials(credentials)
service.autodiscoverUrl(email, new RedirectionUrlCallback())
要建立此连接大约需要5秒钟,它几乎适用于实时应用程序。我可以只创建一次连接,然后重用它,但是因为我读取ExchangeService不是线程安全的,所以我需要创建一个连接来发送电子邮件,然后关闭连接,然后再创建一个新的连接需要订阅通知等。请告诉我是否有另一种方法来处理交换服务连接。 Bwt我试图重用交换服务连接,我得到了这个
microsoft.exchange.webservices.data.core.exception.service.remote.ServiceRequestException: The request failed. Connection is still allocated
另一个问题是关于流式订阅,使客户端应用程序能够发现Exchange存储中发生的事件,我认为这对我来说是合适的方法
StreamingSubscriptionConnection conn = new StreamingSubscriptionConnection(service, 30);
conn.addSubscription(subscription);
conn.addOnNotificationEvent(new SubscriptionConnectionListener());
conn.addOnDisconnect(this);
conn.open();
首先,我需要打开与ExchangeService的连接,然后我需要打开SubscriptionConnection。因为SubscriptionConnectionListener应该一直等待新事件,所以我不会关闭连接。 30分钟后连接到期。我可以抓住到期连接并再次打开。当1000个用户与他们的交换服务打开订阅连接时,如何处理,基本上如果订阅连接仍然为新事件打开,用于订阅的交换服务连接也应保持活跃。
这是我的担忧,也许有些是因为我以前从未处理过这件事。请帮忙。
先谢谢