Quantcast
Channel: Exchange Server Development forum
Viewing all 7132 articles
Browse latest View live

Need help to get a sample request for getUserAvailability

$
0
0

Hi Team,

I am looking to make ews API call to getUserAvailability. Can someone please help me with the sample request where i can get free/busy data for say 6 days(consecutive) excluding weekends and also if there is a way I can get free/busy data for all the days from morning 7AM to 7PM for all the 6 days PST time.


SyncFolderItems managed API missing parameter

$
0
0

Hi All,

I just recently picked up a project that I started last year. I had a function call to SyncFolderItems that had a parameter of number of days since last sync (version 2.0.50727). Using package manager I brought down the latest and greatest version 2.2. My code no longer compiles, because the SyncFolderItems  parameter no longer has the number of days parameter. Is there an new function, or has this parameter been removed permanently. If removed, how do I manage the sync by the number of days.

Thanks, Tom



exchange2010sp3 预订会议修改后时区变化

$
0
0

下图是预订会议的邮件。能看到时区是正确的。

我更改了内容和会收到更新会议邮件,如下图,可以看到的时区发生变更

我应该如何解决这个问题?让前后时区保持统一?

我创建和更新会议的时候都设置了时区代码,如下图

exchange2010sp3 owa创建会议问题

$
0
0

owa创建会议会自动加上框框里的字符

outlook创建会议不会有。

我应该如何把它除去?

我使用ews创建会议无法确定会议是否创建成功

$
0
0

查看说明写的是

MeetingRequestWasSent可以获取会议是否发送成功,但是获取这个值提示报错

Email box reportingrequest@bcbsnc.com is missing the 3 Year Retention folder

$
0
0

HI Team,

I need your help urgent   

Shared mailbox unable to show retention tag  like abc@contso.com is missing the 3 Year Retention folder

How to trouble shoot


Satish Chaturvedi Mob-9990806001

White westinghouse agent صيانة ثلاجات وايت وستنجهاوس ٠١١٢٩٣٤٧٧٧١ @ ٠٢٣٥٧٠٠٩٩٤

$
0
0

المركز الرئيسى صيانة وايت وستنجهاوس   الوكيل   ٠٢٣٥٧١٠٠٠٨

White westinghouse ٠١٢٢٣١٧٩٩٩٣//٠١١٥٤٠٠٨١١٠//٠١٢٢٣١٧٩٩٩٣

٠٢٣٥٧١٠٠٠٨/٠٢٣٥٦٩٩٠٦٦

 


 

Admin account not able to create mailbox folders for user

$
0
0
Is there any option or way in Exchange 2010 for the admin account to create mailbox folders for users. As a user I can log in to account and can create folder , but for testing purpose I need multiple folders creation in all users , so I want to create various mailbox folders at the same  time in all users, If the admin can do it?

EWS Managed API SyncFolderItems How to Update and Delete/Keeping track of items.

$
0
0

Hi, 

I am building an app that is required to live in a trusted domain, monitor a collection of mailbox-calendars on an exchange server in that domain, and sync appointments to different mailboxes on one or many other servers.  The mailbox it is synced with is defined in an internal mapping table (sqlce) that is maintained by the user of this application.

The problem I have is I can not work out a way to keep track of the remote appointment so that I can update or delete it if necessary.  After I create the appointments on the remote server they have a new itemid which does not correspond to the one returned by the sync folder items call on the local exchange server.  I can't find the item by start time/subject as these may have been changed or deleted.

My sync method is below - am I going about this entirely the wrong way or is there a better way to user the SyncFolderItems method?

The best approach I have come up with so far to get around my problem is to save ItemID of the remote appointment into a property of the local appointment but even this I am not sure will work because I don't know what properties are maintained after a delete? Please Help!!!!



Cheers

Lucas


[Exchange-Online] [EWSMA] [C#] [Windows]: EWS - CreateAttachment problem - The underlying connection was closed: An unexpected error occurred on a send

$
0
0

Hello,

 

I have a problem with ExchangeServiceBinding.CreateAttachment(...) method (EWS with Office 365)

  • When I try to add a small attachment (e.g. 5 MB), then the method works fine.
  • When I try to add a big attachment (e.g.12 MB), then the following exception is thrown:

 System.Net.WebException
The underlying connection was closed: An unexpected error occurred on a send.
   at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)
   at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at C2EWS.Proxy.ExchangeServiceBinding.CreateAttachment(CreateAttachmentType CreateAttachment1) in d:\source\EWSProxyClasses.cs:line 1471
   at EWSRequest.Program.UploadAttachment(ExchangeServiceBinding esb, ItemIdType parentItemIdType) in d:\source\EWSRequest\Program.cs:line 90
   at EWSRequest.Program.Main(String[] args) in d:\source\EWSRequest\Program.cs:line 59

 

Inner exception:

 System.IO.IOException
 Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host.
    at System.Net.Sockets.NetworkStream.MultipleWrite(BufferOffsetSize[] buffers)
    at System.Net.Security._SslStream.StartWriting(SplitWritesState splitWrite, SplitWriteAsyncProtocolRequest asyncRequest)
    at System.Net.Security._SslStream.ProcessWrite(BufferOffsetSize[] buffers, SplitWriteAsyncProtocolRequest asyncRequest)
    at System.Net.TlsStream.MultipleWrite(BufferOffsetSize[] buffers)
    at System.Net.Connection.Write(ScatterGatherBuffers writeBuffer)
    at System.Net.ConnectStream.ResubmitWrite(ConnectStream oldStream, Boolean suppressWrite)

 

Inner exception:
  System.Net.Sockets.SocketException
  An existing connection was forcibly closed by the remote host
     at System.Net.Sockets.Socket.MultipleSend(BufferOffsetSize[] buffers, SocketFlags socketFlags)
     at System.Net.Sockets.NetworkStream.MultipleWrite(BufferOffsetSize[] buffers)

 

The C# code is the following:

private void UploadAttachment(ExchangeServiceBinding esb, ItemIdType parentItemIdType, string attachmentPath)
{
    // File Attachment
    FileAttachmentType fileAttach = new FileAttachmentType();

    // Attachment details
    byte[] bytes = System.IO.File.ReadAllBytes(attachmentPath);
    fileAttach.Content = bytes;
    fileAttach.IsInlineSpecified = false;
    fileAttach.LastModifiedTimeSpecified = false;
    fileAttach.Name = System.IO.Path.GetFileName(attachmentPath);

    // Create Attachment
    CreateAttachmentType reqCreateAttach = new CreateAttachmentType();

    // Add parent Id
    reqCreateAttach.ParentItemId = parentItemIdType;

    // Add attachment to the query
    reqCreateAttach.Attachments = new AttachmentType[1];
    reqCreateAttach.Attachments[0] = fileAttach;

    // Upload attachment
    CreateAttachmentResponseType resp = esb.CreateAttachment(reqCreateAttach);

    // Check response errors
    CheckErrors(resp);
}


Could you advise a solution, please?

 

Robert

EWS Managed API, MimeContent, Save and index out of ranged -error

$
0
0

Hi

We have EWS Managed API v1.2 and Exchange Server 2010 sp2. I have code that copies a message coming to public folder to new message, code example:

PropertySet pset = new PropertySet(BasePropertySet.FirstClassProperties) { ItemSchema.MimeContent };
item.Load(pset);
...

EmailMessage postItem = new EmailMessage(_exchangeService);postItem.MimeContent = new MimeContent(postItem.MimeContent.CharacterSet, item.MimeContent.Content);

postItem.Save(item.ParentFolderId);

item is also EmailMessage. Save-method causes "Index is out of range exception". Everything however seems to be updated. I update also some extended properties and they also seem to update. Is it ok to just ignore the exception or is there any other ways to copy the whole content of message to new message. The reason I am copying content is, that I must update ItemClass of the coming message from IPM.Note to IPM.Post.xxx.

/Harri


hvk

EWS Exception calling "FindItems" with "3" argument(s): "An internal server error occurred. The operation failed."

$
0
0

We're running a PowerShell script that uses EWS to check the content of a mailbox. This worked flawlessly for over a year and now, all of a sudden, it is throwing the following error:

Exception calling "FindItems" with "3" argument(s): "An internal server error occurred. The operation failed."
At line:1 char:1+ 
$Service.FindItems($Inbox.Id,$Filter,$View)


The code we use:

Param ( [String]$Mailbox = 'User@domain.com', [Int]$HoursAgo = '192', [String]$UserName = 'AdminUser', [String]$Password = 'S:\Input\Passwords\Password.txt', [String]$MailboxFolderInbox = '\PowerShell', [ValidateSet('Exchange2007_SP1','Exchange2010','Exchange2010_SP1','Exchange2010_SP2','Exchange2013','Exchange2013_SP1')] [String]$ExchangeVersion = 'Exchange2007_SP1', [String]$EWS = 'C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll' ) Function Find-MailboxFolderIDHC { <# .SYNOPSIS Search for the folder ID of a specific folder in a mailbox. .DESCRIPTION Search for the folder ID of a specific folder in a mailbox. .PARAMETER Path The path to search for within the mailbox. When searching for an exact path this should be split with '\'. Example: '\PowerShell\Tickets SENT' or 'PowerShell'' .PARAMETER Mailbox E-mail address .PARAMETER Service The Exchange Webservice object used to authenticate ourselfs .EXAMPLE Find-MailboxFolderIDHC -Path '\Inbox\PowerShell\Expiring users OUT' -Mailbox 'Jos@brink.nl' -Service $Service Searches for the folder 'Expiring users Out' under the root 'Inbox\PowerShell' of the mailbox 'Jos@brink.nl'

# [CmdLetBinding()] Param ( [Parameter(Mandatory)] [String]$Path, [Parameter(Mandatory)] [String]$Mailbox, [Parameter(Mandatory)] [Object]$Service ) Try { $FolderID = New-Object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::MsgFolderRoot,$Mailbox) $DataFolder = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($Service,$FolderID) } Catch { throw "Folder '$Path' not found in mailbox '$Mailbox'. Maybe this is a distribution list instead or the mailbox is not correctly configed with 'Full control'. In this case ask SDO Exchange team to run the 'Add-MailboxPermission' CmdLet as described in 'https://support.microsoft.com/en-us/kb/940846': $_" } $Array = $Path.Split('\') for ($i=1; $i -lt $Array.Length; $i++) { $FolderView = New-Object Microsoft.Exchange.WebServices.Data.FolderView(1) $SearchFilter = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsEqualTo([Microsoft.Exchange.WebServices.Data.FolderSchema]::DisplayName,$Array[$i]) $Results = $service.FindFolders($DataFolder.Id,$SearchFilter,$FolderView) if ($Results.TotalCount -gt 0) { foreach ($R in $Results.Folders) { $DataFolder = $R } } else { $NotFound = $true } } if ($NotFound) { if ($ErrorActionPreference -eq 'Ignore') { Write-Verbose "Folder path '$Path' not found in the mailbox '$Mailbox'" } else { throw "Folder path '$Path' not found in the mailbox '$Mailbox'" } } else { $DataFolder.Id Write-Verbose "Found folder '$Path' in '$Mailbox' with ID '$($DataFolder.Id.UniqueId)'" } } Function Import-CredentialsHC { <# .SYNOPSIS Create a PSCredential object. .DESCRIPTION Create a PSCredential object with a user name and password that can be used for authentication via 'Credssp'. .PARAMETER SamAccountName The SAM Account Name used to logon to the domain. .PARAMETER Password Plain text or a hashed file. Keep in mind that the hashed file can only be decrypted by the user that hashed it. A part of the Windows profile is used to decypher the hash. .EXAMPLE $Creds = Import-CredentialsHC -SamAccountName 'test' -Password 'Welkom' Creates the PSCredential object '$Creds' for the user 'test' with his password 'Welkom'.

#> [CmdletBinding()] Param ( [parameter(Mandatory,Position=0)] [ValidateNotNullOrEmpty()] [String]$SamAccountName, [parameter(Mandatory,Position=1)] [ValidateNotNullOrEmpty()] [String]$Password ) Process { If (-not (Get-ADUser -Filter {SamAccountName -eq $SamAccountName})) { throw "Import-CredentialsHC: The SamAccountName '$SamAccountName' is incorrect" } if (-not ((Get-ADUser -Identity $SamAccountName).Enabled)) { throw "Import-CredentialsHC: The account '$SamAccountName' is disabled" } if ((Get-ADUser -identity $SamAccountName -Properties LockedOut).LockedOut) { throw "Import-CredentialsHC: The account '$SamAccountName' is locked-out" } if (Test-Path $Password -PathType Leaf) { try { $Pwd = Get-Content $Password | ConvertTo-SecureString -Force -EA Stop $Credentials = New-Object System.Management.Automation.PSCredential -ArgumentList $SamAccountName,$Pwd } catch { throw "Import-CredentialsHC: The password has been hashed with another Windows profile (user) then the Windows account now in use (all 3 users/owners need to be the same) - Script account :`t $env:USERNAME - SamAccountName :`t $SamAccountName - Password file :`t $Password" } } else { $Pwd = $Password | ConvertTo-SecureString -asPlainText -Force $Credentials = New-Object System.Management.Automation.PSCredential -ArgumentList $SamAccountName,$Pwd } if ((New-Object directoryservices.directoryentry "",$SamAccountName,$($Credentials.GetNetworkCredential().Password)).psbase.name -ne $null) { Write-Output $Credentials } else { throw "Import-CredentialsHC: The password for the user '$SamAccountName' is not valid" } } } Import-Module -Name $EWS -EA Stop $Credentials = Import-CredentialsHC -SamAccountName $UserName -Password $Password $Service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService -ArgumentList $ExchangeVersion $Service.UseDefaultCredentials = $false $Service.Credentials = $Credentials.GetNetworkCredential() #$Service.UseDefaultCredentials = $true $Service.AutodiscoverUrl($Mailbox) $FindMailParams = @{ Mailbox = $Mailbox Service = $Service } $PowerShellPathId = Find-MailboxFolderIDHC @FindMailParams -Path $MailboxFolderInbox $Inbox = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($Service,$PowerShellPathId) $Props = [Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties $PropertySet = New-Object Microsoft.Exchange.WebServices.Data.PropertySet($Props) $PropertySet.RequestedBodyType = [Microsoft.Exchange.WebServices.Data.BodyType]::Text $PropertySet.Add([Microsoft.Exchange.WebServices.Data.ItemSchema]::MimeContent) $Date = [Microsoft.Exchange.WebServices.Data.ItemSchema]::DateTimeReceived $TimeSpan = (Get-Date).AddHours(-$HoursAgo) $Filter = New-Object -TypeName Microsoft.Exchange.WebServices.Data.SearchFilter+IsGreaterThan -ArgumentList $Date,$TimeSpan $View = New-Object Microsoft.Exchange.WebServices.Data.ItemView(100) $View.OrderBy.add([Microsoft.Exchange.WebServices.Data.ItemSchema]::DateTimeReceived, [Microsoft.Exchange.WebServices.Data.SortDirection]::Ascending) $Service.FindItems($Inbox.Id,$Filter,$View)


When I check the $Service object it seems to be ok, but FindItems always fails:

$Service


Url                          : https://mymailbox.company.com/ews/exchange.asmx
ImpersonatedUserId           : 
ManagementRoles              : 
PreferredCulture             : 
DateTimePrecision            : Default
FileAttachmentContentHandler : 
TimeZone                     : (UTC+01:00) Brussels, Copenhagen, Madrid, Paris
UnifiedMessaging             : Microsoft.Exchange.WebServices.Data.UnifiedMessaging
EnableScpLookup              : True
TraceEnablePrettyPrinting    : True
CookieContainer              : System.Net.CookieContainer
SendClientLatencies          : True
TraceEnabled                 : False
TraceFlags                   : All
TraceListener                : Microsoft.Exchange.WebServices.Data.EwsTraceListener
Credentials                  : Microsoft.Exchange.WebServices.Data.WebCredentials
UseDefaultCredentials        : False
Timeout                      : 100000
PreAuthenticate              : False
AcceptGzipEncoding           : True
RequestedServerVersion       : Exchange2007_SP1
UserAgent                    : ExchangeServicesClient/15.00.0913.015
ServerInfo                   : 15.00.1178.002
WebProxy                     : 
KeepAlive                    : True
ConnectionGroupName          : 
ClientRequestId              : 
ReturnClientRequestId        : False
HttpHeaders                  : {}
HttpResponseHeaders          : {[Transfer-Encoding, chunked], [Content-Encoding, gzip], [Vary, Accept-Encoding], [request
                               -id, 960d1ecd-c292-4e43-9b74-2d25f1e96560]...}

Thank you for your help as we're seriously stuck here and out of ideas on how to solve this. I've tried with Exchange version 2013 but this throws another error of incompatible Exchange versions. I thought they might have moved to a new Exchange version in our environment.


Outlook Calendar REST API to access on-premise Exchange server

$
0
0

Hello,

I'm creating an ASP.NET Core application that should implement the functionality of letting a user see other users calendar-appointments in a scheduler.

All users and their calendar-information is on an on-premise exchange server 2016 and now I'm trying to figure out what alternatives I have to accomplish this.

From what I have understood, there are one way to approach this, but potentially two? I realize that I can use the EWS Managed API in my application to retrieve calendar-appointment-information to show in the scheduler. But can I also use the Outlook Calendar REST API to accomplish this?

I have looked at https://msdn.microsoft.com/en-us/office/office365/api/calendar-rest-operations to try and figure out how to use this with the work-email-addresses that are located on the Exchange-server. But we don't have Office 365 or Exchange online. Can the Outlook REST API still be used to accomplish this? And if that's the case - where can I find out how to do it?

Thank you in advance

Best regards Isak

Migration EX2010 to CLOUD

$
0
0

Hi guys.

Scenario:

ON-premisis Exchange2010 (let's persume that we will patch it with SP3 and latest update rollup - 22)

DC is ON-premisis

The idea:
- Migrate Exchange 2010 to Exchange Online (O365).

- Migrate DC to AZURE
- 1 DC will still stay on premisis

What would be correct approach at the point where we want to decomission Exchange 2010 on premisis.

As I have read even if you have Exchange on cloud you still need to have somewhere installed Exchange in your environment (for management purpouse to avoid using ADSIEDIT). We were thinking putting that "basic" Exchange on DC in AZURE.

What would be the correct approach:
Migrate EX2010 to Exchange online first, decomission and then install Exchange "basic" in AZURE DC or should we install "basic Exchange" in Azure first...?


bostjanc

exchange email account

$
0
0

Recently, I'm having issues with adding my exchange account to my iOS mobile device.  It doesn't seem to auto discover my exchange server by the looks of things.  If I add my exchange account to outlook (office 2016), the account loads correctly.  The difference between my exchange account and most others, is my account is a free exchange account, grandfathered by previous service supported by Microsoft, where they allowed you to configure exchange email free under a personal domain.  That service  'domains.live.com' has been discontinued but has been working since 2014 with no issues. AS I understood, users wouldn't face any disruption to previously created mailboxes; they'd only be able to continue using with no ability to add more exchange mailboxes to the domain. Ayone have any idea's as to waht my ios device is looking for when It asks for the mail exchange server name??; thought it might be the server listed as my mx record, but that didnt seem to work.  I have a feeling that something isn't getting updated via dns records that would normally get updated when you are paying for exchange.  ANy idea's would be helpful


Robert


Showstopper: Problem with EWS request UploadItems in Office365/ExchangeOnline: An internal server error occurred

$
0
0
Hi guys,

we use EWS requests ExportItems / UploadItems.
Until recent time (2-3 days ago) all was OK but now we started getting EWS response on UploadItems:

<m:UploadItemsResponseMessage xsi:type="m:UploadItemsResponseMessageType" ResponseClass="Error">
  <m:MessageText>An internal server error occurred. The operation failed., Unable to get the item's parent ID.</m:MessageText>
  <m:ResponseCode>ErrorInternalServerError</m:ResponseCode>....

I created test app which just calls ExportItems request and at once UploadItems with received data from ExportItems.
Here is my logged requests / responses (IDs are shortened with ...)

ExportItems request:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Header>
  <t:RequestServerVersion Version="Exchange2010_SP1"/>
  <t:ExchangeImpersonation>
    <t:ConnectingSID><t:PrimarySmtpAddress>olx@olx365test.onmicrosoft.com</t:PrimarySmtpAddress></t:ConnectingSID>
  </t:ExchangeImpersonation>
</soap:Header>
<soap:Body>
  <m:ExportItems>
    <m:ItemIds><t:ItemId Id="AQMkA...."/></m:ItemIds>
  </m:ExportItems>
</soap:Body>
</soap:Envelope>

ExportItems response:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
  <h:ServerVersionInfo MajorVersion="15" MinorVersion="20" MajorBuildNumber="1059" MinorBuildNumber="24" Version="V2018_01_08"
xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
</s:Header>
<s:Body>
  <m:ExportItemsResponse
xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
    <m:ResponseMessages>
      <m:ExportItemsResponseMessage ResponseClass="Success">
        <m:ResponseCode>NoError</m:ResponseCode>
        <m:ItemId Id="AQMkA..." ChangeKey="CQAAAA=="/>
        <m:Data>AQAAAAg...</m:Data>
      </m:ExportItemsResponseMessage>
    </m:ResponseMessages>
  </m:ExportItemsResponse></s:Body></s:Envelope>

UploadItems request:
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Header>
  <t:RequestServerVersion Version="Exchange2010_SP1"/>
  <t:ExchangeImpersonation>
    <t:ConnectingSID><t:PrimarySmtpAddress>olx@olx365test.onmicrosoft.com</t:PrimarySmtpAddress></t:ConnectingSID>
  </t:ExchangeImpersonation>
</soap:Header>
<soap:Body>
  <m:UploadItems>
    <m:Items>
      <t:Item CreateAction="Update" IsAssociated="false">
        <t:ParentFolderId Id="AQbGR..."/>
        <t:ItemId Id="AQMkA..."/>
        <t:Data>AQAAAAg...</t:Data>
      </t:Item>
    </m:Items>
  </m:UploadItems>
</soap:Body>
</soap:Envelope>

UploadItems response:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
  <h:ServerVersionInfo MajorVersion="15" MinorVersion="20" MajorBuildNumber="1059" MinorBuildNumber="24" Version="V2018_01_08"
xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
</s:Header>
<s:Body>
  <m:UploadItemsResponse
xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
    <m:ResponseMessages>
      <m:UploadItemsResponseMessage xsi:type="m:UploadItemsResponseMessageType" ResponseClass="Error">
        <m:MessageText>An internal server error occurred. The operation failed., Unable to get the item's parent ID.</m:MessageText>
        <m:ResponseCode>ErrorInternalServerError</m:ResponseCode>
        <m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
      </m:UploadItemsResponseMessage>
    </m:ResponseMessages>
  </m:UploadItemsResponse>
</s:Body>
</s:Envelope>

so questions are
1) what does it mean, what was changed in Office365/ExchangeOnline?
2) how to workaround?

Any help highly appreciated.

How to get list of all Office 365 groups a user is part of using REST API calls

$
0
0

Hi,

I am looking to get the list of all Office 365 groups a user is part of using REST API call.

I am calling this REST call in SPFx framework. so any alternate approach building utilizing SPFx framework will also be helpful.

Thanks in adavance.


ashishshukla.1183

[EWS] Forward a meeting as a delegate results in different organizer

$
0
0

I have this Setup:

User Master
User Delegate
User Recipient

Master creates an appointment and invites Delegate. Delegate gets an invitation.
When Delegate forwards the Invitation himself to Recipient all is correct, Master gets a notification that his Meeting was forwarded and is still the organizer of the Meeting.
When Master uses the Delegation rights and Forwards the invitiation using his own credentials and sets Delegate as FROM the behavior is incorrect: There is no notification about the Meeting being forwarded and Delegate is now set as the organizer in the Meeting request that Recipient receives.

Is there a Workaround for this behavior?

Retrieve appointment organiser using ICalUid for anyonece appointment without impersonation

$
0
0

Hi

We want to retrieve appointment organiser using ICalUid  as we don't know organiser,  so we can't do impersonation.

I have tried below code

==========================================

 var filter = new SearchFilter.IsEqualTo
                {
                    PropertyDefinition = new ExtendedPropertyDefinition
                      (DefaultExtendedPropertySet.Meeting, 0x03, MapiPropertyType.Binary),
                    Value = GetObjectIdStringFromUid("bookingOrganizerRequest.ExchangeRefenceNumber[0]") //Hex value converted to byte and base64 encoded
                };


                var view = new ItemView(1) { PropertySet = new PropertySet(BasePropertySet.FirstClassProperties) };
                items = service.FindItems(WellKnownFolderName.Calendar, filter, view).Items.ToList();

======================

It works fine if we impersonation by organiser email id but our aim is to find organiser as we don't know

Kindly help me we are struggle lot and our client is waiting for feature. (we have only ICalUid, not ItemId)

Regards

Neeraj


Neeraj

Multiple tasks cause exception "cannot access file because it is being used by another process"

$
0
0

Hi,

I have created a windows service, and I am creating parallel tasks to access users inbox (impersonate). Each task will establish its own connection to the exchange server. We are going to run a maximum of 5 tasks at a time (impersonating 5 mailboxes). When I start the first task, everything runs fine, but when I start the second task, the service throws an unhandled exception. If I only start one task, everything functions correctly.

Each task starts a sync on folder items, and when all the items have been synced the task will shut down. That is the goal.

I have reorganized my code several times to ensure there is not any contention. But I always get an file access error in different locations. 

I read the following article, and it states that as long as we create the service in a separate thread we should be ok.

https://blogs.msdn.microsoft.com/webdav_101/2015/05/03/ews-best-practices-threading-issues-with-the-ews-managed-api/

Any suggestions?

Thanks, Tom

Viewing all 7132 articles
Browse latest View live