MAPI over HTTPS
Exchange 2013 Creating DAG database when cluster already created
Working creating an Exchange DAG on a pair of clustered Exchange 2013 (both running at Build Number 15.0.1210.3).
Both Exchange 2013 servers are part of Windows 2012 R2 native active directory domain and forest.
Cluster created prior to DAG.
When trying to create DAG that has both Exchange 2013 servers as members I get the following errors:
- The following servers in the Windows Failover Cluster are not in Active Directory: exchange2013b. This is usually the result of an incomplete membership change (add or remove) of the database availabilty group.
- Mailbox server EXCHANGE2013B was manually added to cluster 'exchange2013'. It must be removed from the cluster before it can be added to database availability group 'Exchange2013DAG'.
How would I go about resolving this error? I did not find any way of removing the the Mailbox server from the cluster via the MMC. Is it possible to delete the cluster entirely? If so is this the best way? Will creating the DAG reestablish the cluster?
In hindsight probably not the best idea to have created the cluster first before the DAG.
Thanks in advance for any help given.
PublicFolder replication not working
Hi,
I have two exchange servers 2010 in my environment.
By the script AddReplicaToPFRecursive.ps1 replica added on new server.
But commandlet Get-PublicFolderStatistics -server OLDSERVER returns public folders, Get-PublicFolderStatistics -server NEWSERVER not returns public folders
Name Site ServerRole Edition AdminDisplayVersion
---- ---- ---------- ------- -------------------
OLDSERVER ltd.local/... Mailbox,... Standard Version 14.3 (Bu...
NEWSERVER ltd.local/... Mailbox,... Enterprise Version 14.3 (Bu...
[EWS] Retrieving named property from calendar event
I am trying to use EWS to obtain named property 0x8580 (InetAcctName). I've tried various versions of ExtendedFieldURI but I either get an error about an invalid request, or nothing is returned. For example:
<t:ExtendedFieldURI DistinguishedPropertySetId="Common" PropertyId="0x8580" PropertyType="String" />
or
<t:ExtendedFieldURI PropertySetId="00062008-0000-0000-C000-000000000046" PropertyId="0x8580" PropertyType="String"/>
Can anybody clue me in on how to obtain this property?
Issue for EWS push notification
For monitor mailboxes status and new mail in Office365, we leverage EWS push notification mechanism to implement it.
But we encounter a problem that there are two mailboxes no heartbeat or new mail event received by our EWS push callback server during two days although we re-subscribe every 15 minutes and each subscription result is successful.
Besides Office 365 data center migration, what kind of action of Office 365 will trigger the problem?
InternalServerError calling EWS
Hi Pros,
I am currently facing a fault message that is cryptic for me...
trying to create a contact in a postbox private folder via EWS with message:
<CreateItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<SavedItemFolderId>
<FolderId Id="AAMkAGEyNGZkOWNmLTI4NGItNDA5ZS1hYTFjLTlhZDk2NTRhZWVkNgAuAAAAAAAttFVmEjcfQanve1B45ahiAQC+eDPWexhSRIxdREDcjogzAAAAAAElAAA=" ChangeKey="AwAAABYAAAC+eDPWexhSRIxdREDcjogzAAAAAXnl" xmlns="http://schemas.microsoft.com/exchange/services/2006/types"
/>
</SavedItemFolderId>
<Items>
<Contact xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<FileAs>foo/FileAs>
<DisplayName>bar</DisplayName>
<GivenName>foo</GivenName>
<Nickname>Jbar</Nickname>
...
</Contact>
</Items>
</CreateItem>
The response Message is:
<s:Fault xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<faultcode xmlns:a="a:ErrorInternalServerError</faultcode">http://schemas.microsoft.com/exchange/services/2006/types">a:ErrorInternalServerError</faultcode>
<faultstring xml:lang="de-DE">An internal server error occurred. The operation failed.</faultstring>
<detail>
<e:ResponseCode xmlns:e="ErrorInternalServerError</e:ResponseCode">http://schemas.microsoft.com/exchange/services/2006/errors">ErrorInternalServerError</e:ResponseCode>
<e:Message xmlns:e="An">http://schemas.microsoft.com/exchange/services/2006/errors">An internal server error occurred.
The operation failed.</e:Message>
</detail>
</s:Fault>
The only EventlogEntry I can find for this is :
Watson report about to be sent for process id: 9640, with parameters: E12IIS, c-RTL-AMD64, 15.01.0396.033, w3wp#MSExchangeServicesAppPool, M.Exchange.Services, M.E.S.C.T.MethodWideStoreSessionCache.GetCachedMailboxSessionBySmtpAddress, M.E.S.C.Types.MissingEmailAddressForDistinguishedFolderException, b26d, 15.01.0396.033.
ErrorReportingEnabled: True
The solution sending the message worked with former Exchange System, we switched to 2016 and now we get this error.
Any hints how to find detailed information about what is going wrong here?
exchange/SQL integration
hello everybody
i want to discuss one thing,
why there is no integration between wxchange and SQL? is it possible to do that in next releses? as per my understanding There are both advantages and disadvantages to exchange /SQL integration. But synchronizing data to and from a SQL Server database overcomes these disadvantages and maximizes the strengths of both platforms
am I right?
Mohammad Naji senior exchange administartor
Need to exclude Exchange 2016 server from scripting
Hi,
I got awesome script to monitor exchange server's database health
source:http://www.msexchange.org/articles-tutorials/exchange-server-2010/monitoring-operations/monitor-dag-database-failover.html
I have edited <g class="gr_ gr_193 gr-alert gr_gramm gr_run_anim Grammar only-ins doubleReplace replaceWithoutSep" data-gr-id="193" id="193">script</g>, its working fine.
[Bool] $bolFailover=$False
[String] $errMessage=$null
$date = get-date
$subject = "Database Health Check !!!" + $date
$errMessage+="## Checking if any Database is not mounted as per Activation Preference 1 ##"
$errMessage+="`n`n"
Get-MailboxDatabase | ForEach {
$db=$_.Name
$curServer=$_.Server.Name
$ownServer=$_.ActivationPreference | ? {$_.Value -eq 1}
# Compare the server where the DB is currently active to the server where it should be
If ($curServer-ne $ownServer.Key.Name) {
$errMessage+="`n$db on $curServer should be on $($ownServer.Key)"
}
$bolFailover=$True
}
$errMessage+="`n`n"
$errMessage+="## Checking if any Database or Content Index is not healthy ##"
Get-MailboxDatabaseCopyStatus * | ForEach {
If ($_.Status -notmatch "Mounted" -and $_.Status -notmatch "Healthy" -or $_.ContentIndexState -notmatch "Healthy") {
$errMessage+="`n`n$($_.Name) | Status: $($_.Status) | CQL: $($_.CopyQueueLength) | RQL: $($_.ReplayQueueLength) | ContentIndex: $($_.ContentIndexState)"
$bolFailover=$True
}
}
If ($bolFailover) {
Send-MailMessage -From "" -To "" -Subject $subject -Body $errMessage -SMTPserver ""
}
However I would like to exclude Exchange 2016 databases from monitoring for a while.
How would i do that ?
Unable to connect and retrieve contacts from public folder database in Exchange 2010 mailbox
Can anyone suggest me how to connect to Exchange Mailbox 2010 and retrieve contacts from the Public folder. I have Exchange Mailbox 2010 and I need to connect to Exchange via my .net application and I am using unmanaged API (HTTP request) to connect and retrieve contacts from Exchange Mailbox 2010 public folder. Usually, I have tried with Exchange 2007 and tried to call it with the mailbox URL which connects with the Exchange CAS server and returns the HTTP response back and was able to connect successfully. But, in the same way when I connect using Exchange 2010 mailbox URL am getting HTTP 403: Forbidden Access Error. I also noted that there are some changes in the configuration for Exchange 2010 if compared to Exchange 2007. It would be a great help if anyone could suggest me how to connect or configure the mailbox accordingly so that I can retrieve contacts from the Public folder. In exchange 2007, there was a public virtual directory provided by default, whereas in Exchange 2010, there was no such public virtual directory.
Is there any workaround to add public virtual directory in Exchange mailbox 2010 and connect it via .net application using unmanaged code or any alternative way. Please suggest me?
preview the soap request/response via ews managed api
I am a bundle of mistakes intertwined together with good intentions
When support for .Net Core?
hello,
I want to develop ews application in .net core,but ews-managed-api not support for .net core.
Configure Exchange server to receive emails from another SMTP Server 2008
I have two servers one in domain tdd.org and another tddweb.org
tddweb.org is a DBS server with Webserver installed
exchange.tdd.org is the exchange server on tdd.org domain
there is a contact us form in tddweb.org website and i want to send contact form details to a particular email id of exchange.tdd.org
i had configured SMTP in tddweb.org server
please guide me to proceed
I am a System Administrator at Vadodara
Advice regarding Exchange Web Services (EWS) findItem operation
Hi,
I am trying to use EWS to get the emails in a number of inboxes and send them on to a call logging solution. Using SOAPUI I can get a list of message ID's from my Inbox so I anticipate the following workflow: Connect to mailbox > Get list of message id's in Inbox (using findItem) > for each ID getItem to return the sender/subject/body/etc then forward to the call logging system. The tool I am using to automate this is working for operations like createItem and findFolder, butfindItems is complaining.
Currently I get: "NonEmptyArrayOfPathsToElementTypeChoice cannot be null!!"
If I locate this in findItem > itemShape > additionalProperties it gives me an option to set a "path" aka "BasePathToElementType" but I cannot see what this should be. If I leave it blank I get: "The request failed schema validation: The 'http://schemas.xmlsoap.org/soap/envelope/:mustUnderstand' attribute is not declared."
If I set a value (e.g. A) I get: "Unable to create complex or array type with value A, the value must be a saved variable from a prior job."
I am using Automic's ONE Automation and their Web Service agent, I have their support looking at this to no avail, so I need advice from an EWS expert.
Thanks in advance for your help
-Phill..
P.s. Happy to WebEx if you think you can help.
Need to help to Getting "Linked Master Account" value from Linked mailboxes programmatically by using C# EWS Managed API
Hi all
I need to get "Linked Master Account" value as figure below.
I try programming for getting user information from linked mailbox. The code below I follow “.\Exchange 2013 101 Code Samples\Exchange 2013 Get user information programmatically” This sample may be the same method as The article:Using Autodiscover to get user settings . This sample is pretty easy to understand for a novice exchange developer.
Mainly I highly need to get Linked Master Account value of each user in exchange server in order to use it to proceed subsequent task in my C# coding. Unfortunately, The "Linked Master Account" value was not returned from this code below as expected. The code show you below.
using System; using System.Text; using Microsoft.Exchange.WebServices.Autodiscover; using System.Net; using System.Collections.Generic; namespace Exchange101 { // This sample is for demonstration purposes only. Before you run this sample, make sure that the code meets the coding requirements of your organization. class ExChangeGetUserInfo { static void Main(string[] args) { Console.Title = "EWS Test Console"; AutodiscoverService autodiscover = new AutodiscoverService(); string username_access="administrator"; string password_access="**********"; string domain_access="contoso"; autodiscover.Credentials = new NetworkCredential(username_access,password_access ,domain_access); UserSettingName[] allSettings = (UserSettingName[])Enum.GetValues(typeof(UserSettingName)); List<string> listEmail = new List<string>() { "john@contoso.com", "peter@contoso.com", "mice@contoso.com" }; Console.WriteLine("allSetting Email:" + allSettings.Length); foreach (string email in listEmail) { Console.WriteLine(string.Format("Email: {0} ",email)); GetUserSettingsResponse response = GetUserSettings(autodiscover,email, 10, allSettings); int count = 0; foreach (UserSettingName settingKey in response.Settings.Keys) { count = count + 1; Console.WriteLine(string.Format("{0} - {1}: {2}",count, settingKey, response.Settings[settingKey])); } Console.WriteLine(" complete."); Console.WriteLine("***************************************************************************************"); } Console.WriteLine("\r\n"); Console.WriteLine("Press or select Enter..."); Console.ReadLine(); } public static GetUserSettingsResponse GetUserSettings( AutodiscoverService service, string emailAddress, int maxHops, params UserSettingName[] settings) { Uri url = null; GetUserSettingsResponse response = null; for (int attempt = 0; attempt < maxHops; attempt++) { service.Url = url; service.EnableScpLookup = (attempt < 2); response = service.GetUserSettings(emailAddress, settings); if (response.ErrorCode == AutodiscoverErrorCode.RedirectAddress) { url = new Uri(response.RedirectTarget); } else if (response.ErrorCode == AutodiscoverErrorCode.RedirectUrl) { url = new Uri(response.RedirectTarget); } else { return response; } } throw new Exception("No suitable Autodiscover endpoint was found."); } } }
What is internal name for this attribute???.
I don’t sure whether or not this sample is achievable to my requirement.
Moreover , are there other ways to get this value ?
Please advise me
Thank you for your support.
Pongthorn
Random Unauthorized error
We have an MVC app that connects to the Exchange server. We used to connect to an on premises server using this code to create the service:
if (string.IsNullOrEmpty(Current.UserPassword)) { throw new UnauthorizedAccessException("Exchange access requires Authentication by Password"); } return new ExchangeService { Credentials = new NetworkCredential(Current.User.LoginName, Current.UserPassword), Url = new Uri(ConfigurationManager.AppSettings["ExchangeServiceUrl"]), };
This worked fine, but now our IT department is migrating the Exchange server to the cloud, and some users are on the cloud server while others are on premises. So I changed the code to this:
if (string.IsNullOrEmpty(Current.UserPassword)) { throw new UnauthorizedAccessException("Exchange access requires Authentication by Password"); } var user = ConfigurationManager.AppSettings["ExchangeUser"]; var password = ConfigurationManager.AppSettings["ExchangePassword"]; var exchangeService = new ExchangeService(ExchangeVersion.Exchange2010_SP2) { Credentials = new NetworkCredential(user, password), }; exchangeService.AutodiscoverUrl(Current.EmaiLuser + "@calamos.com", RedirectionCallback); exchangeService.Credentials = new NetworkCredential(Current.EmaiLuser + "@calamos.com", Current.UserPassword); return exchangeService;I am using a service account to do the autodiscovery ( for some reason it doesn't work with a regular account) and then I am changing the credentials of the service to the user that logs in, so he can access the inbox. The problem is that , randomly, the server returns "The request failed. The remote server returned an error: (401) Unauthorized.".
I asked the IT department to check the Exchange logs, but there is nothing there about this error, so I don't know how to fix it...
GetStreamingEvents returns 503 for office 365 account using EWS API using curl.
I am developing an application which subscribes and listens to streaming notifications using EWS.
SubscribeToStreamingNotifications requests and I use the valid subscriptionId from the response to fire GetStreamingEvents. If I provide an invalid subscriptionId I receive a response with the appropriate error, however when the subscriptionId is valid, I only receive HTTP 503 from office365 server for every GetStreamingEvents POST request I fire without any XML response.
Is this a throttling response from office365 server?
Streaming Notifications - What to do if the X-AnchorMailbox subscription is flagged as bad because the mailbox moved stores
Say I have a batch of mailboxes that I have subscribed to streaming notifications using mailbox A as the anchor mailbox. If mailbox A is now moved to another mail store then then the StreamingEventsResponse message will flag the SubscriptionId as bad.
So I:
Remove the SubscriptionID from the list, ask autodiscover for the new url/GroupingInfo for mailbox A and then create a new subscription group using this mailbox as the Anchor Mailbox.
How does this affect the subscription connection in the original which is still using mailbox A as the anchor mailbox?
Should I tear down the entire group and rebuild everything from scratch? Or can I have two groups with the same anchor mailbox (doesn't sound good to me)
Alan
adding all the video's from a server automatically with the file name under the video
wait what
Master's Modified is empty with office 365
Hello all,
I wanted to hear if some of you experienced the same as me... I have some code synchronizing my appointments using EWS and handling master appointments and recurring appointments, including modified and deleted occurrences.
This works well with any Exchange that I tried with but I then tried it with office 365. Everything seems to work fine apart for the "exceptions" when getting the master when I call the GetItemAsync (I have included the UnindexedFieldURIType.calendarModifiedOccurrences in the AdditionalProperties). In that case, the ModifiedOccurences property of the CalendarItemType is always null even if I modify the recurring events.
As I said, when using Exchange server at the office with exactly the same code, the ModifiedOccurences property get populated.
I would really like to keep using the EWS Api so that I can use it for both Office 365 and Exchange.
I would appreciate if someone has a clue on how I could fix this.
Best regards,
Laurent Lopez
Programatic Out of Office Setting not Working Properly
I am creating a web application where users are able to set the out of office status for other users in their department. have created 2 solutions - one usingExchange Tools for PowerShell and the other using the managed Exchange Web Services API.
Everything appears to work fine - I can query the user's Out of Office status from the Exchange Shell with `Get-MailboxAutoReplyConfiguration` and can see the their `AutoReplyState` is set to `Enabled`. However, when I send them an email I do not receive a reply and I do not see the tooltip notifying me that they are out of the office.
Is there some sort of delay when calling `Set-MailboxAutoReplyConfiguration`? If so, has this been documented anywhere or is there a way of avoiding this? I cannot find any mention of it anywhere.
I also noticed that after setting the out of office message via my application, if I log in as that user and go into their Out of Office settings, I can see that the setting has updated, but it only takes effect after I click on OKin this window.
Any help or guidance with this is much appreciated - please let me know if I can provide any more useful information.