标签: exchangewebservices

使用EWS托管API为其他用户创建约会?

在EWS Managed API中,可以轻松地为特定用户创建约会:

ExchangeService service = new ExchangeService();
service.Credentials = new NetworkCredentials ( "administrator", "password", "domain" );
service.AutodiscoverUrl(emailAddress);

Appointment appointment = new Appointment(service);
appointment.Subject = "Testing";
appointment.Start = DateTime.Now;
appointment.End = appointment.Start.AddHours(1);
appointment.Save();
Run Code Online (Sandbox Code Playgroud)

这将为管理员创建约会.但是说我想实际为另一个用户创建一个约会(不要将该用户添加为我约会的参与者).这可以通过EWS Managed API实现吗?

exchange-server exchangewebservices ews-managed-api

11
推荐指数
3
解决办法
1万
查看次数

Exchange Web服务托管API:访问其他用户项

是否可以访问除登录用户之外的其他Exchange帐户的文件夹和项目?

我可以通过Exchange Web服务托管API执行此操作吗?

c# exchange-server web-services exchangewebservices ews-managed-api

11
推荐指数
2
解决办法
9629
查看次数

更新约会会使其更改为EWS 1.1中的会议

这是我正在尝试做的事情:

  • 在两个日期之间获取用户日历上的所有项目
  • 更新LocationSubject某些项目

我得到的项目:

FindItemsResults<Appointment> findResults = calendar.FindAppointments(new CalendarView(startDate, endDate));

此查询工作正常.但每当我调用Update来保存项目时,我都会遇到异常:

Microsoft.Exchange.WebServices.Data.ServiceResponseException: One or more recipients are invalid.

即使我收到异常,该项目也会保存并更改为IsMeeting设置为true!现在更新的项目是与组织者等的会议......这实际上是对我来说数据损坏.

这是代码.它并不复杂.我只需更改测试它LocationSubject两者引起的问题.

Appointment a = Appointment.Bind(_service, new ItemId(id));
a.Location = newLocation
a.Update(ConflictResolutionMode.AlwaysOverwrite);
Run Code Online (Sandbox Code Playgroud)

我错过了一些概念吗?这似乎是一个非常令人震惊的问题.

FWIW,这是针对Office 365服务器的EWS 1.1.

exchange-server exchangewebservices

11
推荐指数
2
解决办法
6206
查看次数

使用vcr存根ViewPoint gem返回取消授权来自ews API的响应

我正在查看通过ViewPoint gem的所有请求.使用vcr gem.

require 'spec_helper'
require 'vcr'

describe CalendarImporters::Ews::Get do
  let(:conf_connection) { FactoryGirl.create(:conf_connection)}
  let(:calendar) { create(:calendar, :for_ews) }
  let(:connection) { Connections::Ews.new(conf_connection, calendar.ews_email) }

  it "works" do
    VCR.use_cassette("a/cassette") do
      connection.client.get_folder(:calendar)
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

connection.client返回一个新ViewPoint连接.

我从gem返回的响应是:Viewpoint::EWS::Errors::UnauthorizedResponseError这相当于来自ews api的401未授权代码.

我发现了这个问题:https://github.com/vcr/vcr/issues/297

这是我遇到的完全相同的问题,但它已经3年了,没有解决方案.我所有的其他谷歌foo都没有发现.

深入研究视点宝石,我发现请求对象除了:HTTPClientWebMockHTTPClient预期之外没有任何区别.

rspec ruby-on-rails exchangewebservices vcr viewpoint

11
推荐指数
1
解决办法
247
查看次数

使用Exchange Web服务(EWS)托管API为其他用户创建任务

作为"EWS托管API新手",我在查找有关创建和管理任务的示例和文档时遇到了一些问题.

我已经设法为自己创建了一个没有问题的任务.但是,我真的需要能够做到以下几点 - 如果有人能给我任何指示,我真的很感激......

  1. 创建一个任务并将其分配给另一个用户.
  2. 能够在分配给该用户时询问该任务的状态(完成百分比等).
  3. 随时更新任务说明.

提前感谢任何指针!

.net exchange-server exchangewebservices ews-managed-api

10
推荐指数
1
解决办法
9340
查看次数

增加EWS流式订阅连接的Lifetime元素

使用Microsoft的EWS,我们能够收听邮箱并在新电子邮件进入时采取措施.但是,我无法弄清楚如何避免连接超时.

根据Microsoft,这是StreamingSubscriptionConnection的构造函数:

public StreamingSubscriptionConnection (
    ExchangeService service,
    int lifetime
)
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我将其编码如下:

service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
StreamingSubscriptionConnection conn = new StreamingSubscriptionConnection(service, 30);
Run Code Online (Sandbox Code Playgroud)

换句话说,我将超时(生命周期)设置为30分钟,因为这是我能够设置的最高值.我怎么能增加这个?或者,即使在传入的电子邮件之间发生约45分钟,我怎么能欺骗这个订阅才能保持活力?

c# exchangewebservices

10
推荐指数
1
解决办法
5890
查看次数

使用EWS阅读电子邮件时处理非法XML值

我们有一个应用程序,它使用a StreamingSubscriptionConnection来读取发送到特定邮箱的封电子邮件.我在开发过程中每天运行几次的问题我得到了例外{"'{square character}', hexadecimal value 0x1F, is an invalid character. Line 1, position 1."}.

这是堆栈跟踪:

   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
   at System.Xml.XmlTextReaderImpl.Throw(Int32 pos, String res, String[] args)
   at System.Xml.XmlTextReaderImpl.ThrowInvalidChar(Int32 pos, Char invChar)
   at System.Xml.XmlTextReaderImpl.ParseText(Int32& startPos, Int32& endPos, Int32& outOrChars)
   at System.Xml.XmlTextReaderImpl.ParseText()
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlTextReaderImpl.Read()
   at Microsoft.Exchange.WebServices.Data.EwsXmlReader.Read()
   at Microsoft.Exchange.WebServices.Data.EwsXmlReader.Read(XmlNodeType nodeType)
   at Microsoft.Exchange.WebServices.Data.EwsXmlReader.InternalReadElement(XmlNamespace xmlNamespace, String localName, XmlNodeType nodeType)
   at Microsoft.Exchange.WebServices.Data.EwsXmlReader.ReadStartElement(XmlNamespace xmlNamespace, String localName)
   at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ReadResponse(EwsServiceXmlReader ewsXmlReader)
Run Code Online (Sandbox Code Playgroud)

如何安全地阅读包含非法字符的EWS电子邮件?

经过一番搜索似乎它可以解决这个问题,使用旧版本的EWS API的.但是,使用最新版本的托管API似乎没有人修复.

这是来自http://social.technet.microsoft.com/Forums/en-US/exchangesvrdevelopment/thread/22863099-1d93-47ac-a11b-08c6bf7facea …

c# xml exchangewebservices

10
推荐指数
1
解决办法
1009
查看次数

如何使用ASP.NET中的Exchange Web服务下载未读电子邮件附件?

我正在使用Exchange Server 2007 SP3

我可以使用以下代码连接交换Web服务

ExchangeServiceBinding esb = new ExchangeServiceBinding();
esb.RequestServerVersionValue = new RequestServerVersion();
esb.RequestServerVersionValue.Version = ExchangeVersionType.Exchange2007_SP1;
esb.Credentials = new NetworkCredential("<user_id>", "<password>", "<domain>");
esb.Url = @"https://<server_fqdn>/ews/Exchange.asmx";
Run Code Online (Sandbox Code Playgroud)

我正在寻找下载未读附件的代码.

请你帮助我好吗?

c# asp.net outlook exchange-server exchangewebservices

10
推荐指数
1
解决办法
2120
查看次数

有没有办法确定电子邮件是否是使用ews c#的回复/回复?

我正在编写支持系统,这是我第一次使用EWS.到目前为止,我一直很成功.我可以提取我需要的信息.发送电子邮件,一切都很好.我确实有一个小小的头痛.有没有办法判断一封电子邮件实际上是否是回复?该应用程序的基本思想是有人发送电子邮件.我们回复并给他们一个参考编号.这样做并且运作良好.现在,如果他们回复同一个地址,我们需要在数据库中记录它有点不同.因此,我需要一些神奇的方法来判断电子邮件是否是回复.到目前为止,我被困住了.

任何建议都将受到高度赞赏,因为我是编程行业的新手,到目前为止谷歌搜索没有任何用处.我在这里包含一段代码

 FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, view);

        foreach (Item myItem in findResults.Items.Where(i => i is EmailMessage))
        {
            var mailItem = myItem as EmailMessage;
            if (!mailItem.IsRead)
            {
                // load primary properties and get a text body type
                mailItem.Load(propertySet);
                // Update the item to isRead in email
                mailItem.IsRead = true;
                mailItem.Update(ConflictResolutionMode.AutoResolve);

                //Check if it is a reply and mark the msg as such

                // add message to list
                SupportEmailMessage msg = new SupportEmailMessage();
                msg.Subject = mailItem.Subject;
                msg.MessageBody = mailItem.Body.Text;
                msg.DateSent = mailItem.DateTimeSent; …
Run Code Online (Sandbox Code Playgroud)

c# exchangewebservices

10
推荐指数
2
解决办法
4604
查看次数

使用Managed API 2.2的EWS调用永远不会返回

我正在使用EWS Managed API v2.2进行EWS调用.最近在我的一个客户,我们有一个奇怪的情况,服务电话,任何服务电话,从未收到响应.

我们正在设置显式超时,使用日志记录围绕服务调用,并使用EWS跟踪侦听.监听器显示EWSRequest SOAP消息,就是这样.日志记录显示"服务之前呼叫"日志条目,但不显示"售后服务呼叫"条目.

我怀疑限制可能是它背后并暂时取消EWS限制限制没有任何影响,无论如何,如果限制开始,我会期待一个错误响应.

这是服务初始化的方式:

public ExchangeWebService(string username, string password, string emailAddress, string exchangeUrl, string exchangeVersion)
{
    ExchangeVersion exVersion = (ExchangeVersion)Enum.Parse(typeof(ExchangeVersion), exchangeVersion);
    _exchangeService = CreateExchangeService(username, password, emailAddress, exchangeUrl, exVersion);
    _exchangeService.Timeout = 30000;           
}

private static ExchangeService CreateExchangeService(string username, string password, string emailAddress, 
                                                             string exchangeUrl, ExchangeVersion exchangeVersion)
{

    IntegrationLogging _il = new IntegrationLogging(Constants.LoggingSourceName);

    ExchangeService service = new ExchangeService(exchangeVersion);
            QualifiedUserName qualifiedName = new QualifiedUserName(username);
    NetworkCredential credentials = new NetworkCredential(qualifiedName.UserName, password);

    if (qualifiedName.HasDomain)
    {
        credentials.Domain = qualifiedName.Domain;
    }

    service.Credentials = …
Run Code Online (Sandbox Code Playgroud)

exchangewebservices

10
推荐指数
1
解决办法
332
查看次数