Hi,
I am trying to display (in my C# app) messages received via REST API with inline images (image in body html with src="cid:image001.png@01D0349B.665C13B0").
I can see no image/attachments in message.
Can u pls advise?
tnx
MK
Hi,
I am trying to display (in my C# app) messages received via REST API with inline images (image in body html with src="cid:image001.png@01D0349B.665C13B0").
I can see no image/attachments in message.
Can u pls advise?
tnx
MK
I have Exchange 2010 SP3 and when i try to see queue i found MSG from empty sender and i install exchange anti spam and choose Block MSG that didn't have sender information BUT still see MSG from empty sender so what can i do :) .
Hi everybody,
I want to count the number of attachments in mailbox. Kindly help me.
Thanks & regards,
Talib Hussain
What am I trying to do?
I have tried installing Microsoft Exchange Server 2013 Cumulative Update 7 Setup on a fresh install of Windows Server 2012 R2 but it gets stuck when running the setup exe on Step 8 of 14 “Mailbox Transport Service” I have included full error logs at the bottom of the page but the basics are in order it will throw which loop around are:
[01/20/2015 17:13:20.0084] [2] Beginning processing Set-SharedConfigDC
[01/20/2015 17:13:20.0178] [2] The call to Microsoft Exchange Active Directory Topology service on server 'TopologyClientTcpEndpoint (localhost)' returned an error. Error details No Minimal Required Number of Suitable Directory Servers Found in Forest mydomain.com Site Default-First-Site and connected Sites..
[01/20/2015 17:13:20.0178] [2] No Minimal Required Number of Suitable Directory Servers Found in Forest mydomain.com Site Default-First-Site and connected Sites.
Exchange is currently running in the envirmonet on 2010 Sp3 I am installing 2013 CU7 fresh so I can migrate the databases over.
What am I running?
2 X DC on domain and forest functional level 2008R2 both writable
1 X fresh install of Windows 2012 R2 which is domain joined
What have I tried?
Computer ConfigurationWindows SettingsSecurity Settings+ Local PoliciesUser Rights AssignmentMange auditing and security log
setup.exe /PrepareSchema /IacceptExchangeServerLicenseTerms
EXCHANGE14:\Current\Release\Shared\Datacenter\Setup
What have I noticed that is suspicious?
Microsoft Filtering Management Service
Microsoft Exchange Active Directory Topology Service
It will eventually error with
“Windows could not start the Microsoft Exchange Transport Service on local computer
Error 1053: This Service did not respond to the start of control request in a timely fashion”
This error is from the GUI wizard itself:
Error:
The following error was generated when "$error.Clear();
$maxWait = New-TimeSpan -Minutes 8
$timeout = Get-Date;
$timeout = $timeout.Add($maxWait);
$currTime = Get-Date;
$successfullySetConfigDC = $false;
while($currTime -le $timeout)
{
$setSharedCDCErrors = @();
try
{
Set-SharedConfigDC -DomainController $RoleDomainController -ErrorVariable setSharedCDCErrors -ErrorAction SilentlyContinue;
$successfullySetConfigDC = ($setSharedCDCErrors.Count -eq 0);
if($successfullySetConfigDC)
{
break;
}
Write-ExchangeSetupLog -Info ("An error ocurred while setting shared config DC. Error: " + $setSharedCDCErrors[0]);
}
catch
{
Write-ExchangeSetupLog -Info ("An exception ocurred while setting shared config DC. Exception: " + $_.Exception.Message);
}
Write-ExchangeSetupLog -Info ("Waiting 30 seconds before attempting again.");
Start-Sleep -Seconds 30;
$currTime = Get-Date;
}
if( -not $successfullySetConfigDC)
{
Write-ExchangeSetupLog -Error "Unable to set shared config DC.";
}
" was run: "System.Exception: Unable to set shared config DC.
at Microsoft.Exchange.Configuration.Tasks.Task.WriteError(Exception exception, ErrorCategory category, Object target, Boolean reThrow, String helpUrl)
at Microsoft.Exchange.Configuration.Tasks.Task.WriteError(Exception exception, ErrorCategory category, Object target)
at Microsoft.Exchange.Management.Deployment.WriteExchangeSetupLog.InternalProcessRecord()
at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__b()
at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)".
Exchange logs which have been written:
**The error will loop around for 8 minutes on trying to set-sharedconfig DC whatever this is trying to do ??
[01/20/2015 17:13:20.0084] [2] Active Directory session settings for 'Set-SharedConfigDC' are: View Entire Forest: 'True', Configuration Domain Controller:mydomain.com', Preferred Global Catalog: 'mydomain.com', Preferred Domain Controllers: '{ mydomain.com}'
[01/20/2015 17:13:20.0084] [2] User specified parameters: -DomainController:mydomain.com' -ErrorVariable:'setSharedCDCErrors' -ErrorAction:'SilentlyContinue'
[01/20/2015 17:13:20.0084] [2] Beginning processing Set-SharedConfigDC
[01/20/2015 17:13:20.0178] [2] The call to Microsoft Exchange Active Directory Topology service on server 'TopologyClientTcpEndpoint (localhost)' returned an error. Error details No Minimal Required Number of Suitable Directory Servers Found in Forest mydomain.com Site Default-First-Site and connected Sites..
[01/20/2015 17:13:20.0178] [2] No Minimal Required Number of Suitable Directory Servers Found in Forest mydomain.com Site Default-First-Site and connected Sites.
[01/20/2015 17:13:20.0178] [2] The call to Microsoft Exchange Active Directory Topology service on server 'TopologyClientTcpEndpoint (localhost)' returned an error. Error details No Minimal Required Number of Suitable Directory Servers Found in Forest mydomain.com Site Default-First-Site and connected Sites..
[01/20/2015 17:13:20.0178] [2] No Minimal Required Number of Suitable Directory Servers Found in Forest mydomain.com Site Default-First-Site and connected Sites.
[01/20/2015 17:13:20.0178] [2] Ending processing Set-SharedConfigDC
[01/20/2015 17:13:20.0193] [2] Beginning processing Write-ExchangeSetupLog
[01/20/2015 17:13:20.0193] [2] An error ocurred while setting shared config DC. Error: The call to Microsoft Exchange Active Directory Topology service on server 'TopologyClientTcpEndpoint (localhost)' returned an error. Error details No Minimal Required Number of Suitable Directory Servers Found in Forest mydomain.com Site Default-First-Site and connected Sites..
[01/20/2015 17:13:20.0193] [2] Ending processing Write-ExchangeSetupLog
[01/20/2015 17:13:20.0193] [2] Beginning processing Write-ExchangeSetupLog
[01/20/2015 17:13:20.0193] [2] Waiting 30 seconds before attempting again.
[01/20/2015 17:13:20.0193] [2] Ending processing Write-ExchangeSetupLog
[01/20/2015 17:13:50.0195] [2] Beginning processing Write-ExchangeSetupLog
[01/20/2015 17:13:50.0273] [2] [ERROR] Unable to set shared config DC.
[01/20/2015 17:13:50.0273] [2] [ERROR] Unable to set shared config DC.
[01/20/2015 17:13:50.0288] [2] Ending processing Write-ExchangeSetupLog
[01/20/2015 17:13:50.0288] [1] The following 1 error(s) occurred during task execution:
[01/20/2015 17:13:50.0288] [1] 0. ErrorRecord: Unable to set shared config DC.
[01/20/2015 17:13:50.0288] [1] 0. ErrorRecord: System.Exception: Unable to set shared config DC.
at Microsoft.Exchange.Configuration.Tasks.Task.WriteError(Exception exception, ErrorCategory category, Object target, Boolean reThrow, String helpUrl)
at Microsoft.Exchange.Configuration.Tasks.Task.WriteError(Exception exception, ErrorCategory category, Object target)
at Microsoft.Exchange.Management.Deployment.WriteExchangeSetupLog.InternalProcessRecord()
at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__b()
at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)
[01/20/2015 17:13:50.0288] [1] [ERROR] The following error was generated when "$error.Clear();
$maxWait = New-TimeSpan -Minutes 8
$timeout = Get-Date;
$timeout = $timeout.Add($maxWait);
$currTime = Get-Date;
$successfullySetConfigDC = $false;
while($currTime -le $timeout)
{
$setSharedCDCErrors = @();
try
{
Set-SharedConfigDC -DomainController $RoleDomainController -ErrorVariable setSharedCDCErrors -ErrorAction SilentlyContinue;
$successfullySetConfigDC = ($setSharedCDCErrors.Count -eq 0);
if($successfullySetConfigDC)
{
break;
}
Write-ExchangeSetupLog -Info ("An error ocurred while setting shared config DC. Error: " + $setSharedCDCErrors[0]);
}
catch
{
Write-ExchangeSetupLog -Info ("An exception ocurred while setting shared config DC. Exception: " + $_.Exception.Message);
}
Write-ExchangeSetupLog -Info ("Waiting 30 seconds before attempting again.");
Start-Sleep -Seconds 30;
$currTime = Get-Date;
}
if( -not $successfullySetConfigDC)
{
Write-ExchangeSetupLog -Error "Unable to set shared config DC.";
}
" was run: "System.Exception: Unable to set shared config DC.
at Microsoft.Exchange.Configuration.Tasks.Task.WriteError(Exception exception, ErrorCategory category, Object target, Boolean reThrow, String helpUrl)
at Microsoft.Exchange.Configuration.Tasks.Task.WriteError(Exception exception, ErrorCategory category, Object target)
at Microsoft.Exchange.Management.Deployment.WriteExchangeSetupLog.InternalProcessRecord()
at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__b()
at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)".
[01/20/2015 17:13:50.0288] [1] [ERROR] Unable to set shared config DC.
[01/20/2015 17:13:50.0288] [1] [ERROR-REFERENCE] Id=AllADRolesCommonServiceControl___ee47ab1c06fb47919398e2e95ed99c6c Component=EXCHANGE14:\Current\Release\Shared\Datacenter\Setup
[01/20/2015 17:13:50.0288] [1] Setup is stopping now because of one or more critical errors.
[01/20/2015 17:13:50.0288] [1] Finished executing component tasks.
[01/20/2015 17:13:50.0304] [1] Ending processing Install-BridgeheadRole
Windows Event Viewer:
Process Microsoft.Exchange.Directory.TopologyService.exe (PID=5276) Forest mydomain.com. Exchange Active Directory Provider couldn't find minimal required number of suitable Global Catalog servers in either the local site 'Default-First-Site' or the following sites:
Hi everyone,
I want to import some emails in a mailbox. How to do this?
The closest I have been to is this PowerShell script:
New-MailboxImportRequest -Mailbox user -FilePath \\servers\pst\sample.pst -TargetRootFolder "Inbox" -IncludeFolders "#Inbox#" -ExcludeDumpster
The result of this script is under the Inbox folder of user, one more Inbox folder is created. I don't want that. I want the emails of Inbox folder of the pst file directly into the Inbox folder of "user". Kindly help.
Thanks & regards,
Talib Hussain
We have exchange 2007...
we planning to implement to block certain attachment extensions only for OWA... in this case what will be impact on users who are using MAc with Outlook 2011.
Sathya
We are moving to a hosted 2013 platform for emails
At the moment we a running of a 2003 exchange server
We are getting rid of almost 100 addresses that are no longer in use
They are currently forwarding to other address some even forwarding through 2 or 3 different accounts
Is there a tool or a quicker way to sort this mess out to see what aliases we would need to set up?
Thanks for any advice given!
Cheers, Owen
Hi everyone,
I have created an Impersonator account and accessing item of another account using SOAP Request. I am unable to query the account. The request is as follows:
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"><soap:Header><t:RequestServerVersion Version="Exchange2013"/></soap:Header><soap:Body><GetItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"><ItemShape><t:BaseShape>Default</t:BaseShape><t:IncludeMimeContent>true</t:IncludeMimeContent></ItemShape><ItemIds><t:ItemId Id="AAMkADhiYjY0NGIxLTMyZTYtNDA2YS04ZmM1LTBiZjRmZGJjMDY0NABGAAAAAAABEJy6UddET6O8EWfW99taBwABc/Z+U4EQRZ7tUFT0S/bsAAA76u/+AAABc/Z+U4EQRZ7tUFT0S/bsAAA9Cn6iAAA=" /></ItemIds></GetItem></soap:Body></soap:Envelope>
And the response is as follows:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Header><h:ServerVersionInfo MajorVersion="15" MinorVersion="0" MajorBuildNumber="516" MinorBuildNumber="29" Version="Exchange2013" xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns="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 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><m:GetItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"><m:ResponseMessages><m:GetItemResponseMessage ResponseClass="Error"><m:MessageText>Access is denied. Check credentials and try again.</m:MessageText><m:ResponseCode>ErrorAccessDenied</m:ResponseCode><m:DescriptiveLinkKey>0</m:DescriptiveLinkKey><m:Items/></m:GetItemResponseMessage></m:ResponseMessages></m:GetItemResponse></s:Body></s:Envelope>
When I query using that account, then it is successful. Kindly help me?
Thanks & regards,
Talib Hussain
When a contact record is pulled using REST API, for "Birthday" field the value will be in date/time format ex: 2015-01-02T18:30:00Z even though the date configured in Office365 is "2015-01-03".
Is this right behavior w.r.t office365 working?
Hi,
I have a question hopefully some experts might be able to answer. I am running Exchange 2010 SP1 and am trying to set some transport rules in the Hub Transport, I was wondering whether it was possible to have a Powershell script run off the back of a transport rule being triggered?
The main reason for this is I am wanting to send a new email out when the rule is triggered, whilst also then forwarding/moving the original triggering email into a holding quarantine mailbox. I have looked through the EMS commands available for New-TransportRule and can't see any actions to send a new email out, also there doesn't seem to be anything for moving the triggering email into a quarantine folder (EMS New-TransportRule commands). So I was thinking that if a PowerShell script could be an action then I could use that to do the above?
Any help would be be really appreciated!
Cheers,
Tom
Hi,
I'm presently using Symantec bridgemail.
I'm planing to move to O365 with hybrid configuration with Exchange 2010.
Can any one help me / give me plan of action / precautions before deploying hybrid.
Sathish
Hi,
I have a requirement of Triggering the event in Web-service with related data (Mail Details) whenever mail received in Exchange Server..
I have done R&D on this, but I couldn't find answer.
Is there any possibility of triggering the service ? If Yes, how can I achieve this?
Thanks in Advance.
Hello
I'm trying to send an e mail using c# code and the SmtpClient class but I get this error: " 'The remote name could not be resolved: 'smtp.office365.com''.
I have looked up the Smtp settings on my online Outlook and have used the same settings as a test in the desktop version of Outlook.
I'm pretty sure I'm using the SmtpClient class correctly and have set:
- Server = smtp.office365.com
- Port = 587
- EnableSsl = true
-The To and From e mail address is a valid user in Office 365
Why does my desktop Outlook connect to the Smtp server but the c# code cannot?
Thanks
Hi,
We are a hosted Exchange server 2013 solution provider, and we want to migrate customer mailboxes (from exchange 2007, 2010) to Exchange 2013 using some API, as we have a web portal for other admin tasks too. Someone told us that we can use EWS Managed API for this purpose.
Is there any article in this regard, which can help us?
Or, is there any other API which we can use?
Thanks in anticipation.
Regards, David Johnson
Hello All,
I am trying to retrieve the mails from exchange using ews. However, my issue is; my each conversation of one mail is getting treated as different mail. I am displaying the mails in grid view. So, each conversation of single mail is shown on different row; instead it should show on single row with latest reply/conversation.
Because of this I am not able to use offset property to retrieve emails.
My aim is all of the conversation in single mail should be treated as one mail; So If I set the offset property then it should easily give me the mail from that point.
Below is my code
public void RetriveEMails() { String Subject; String Sender; String EmailBody; String[] Recipients; Boolean blnHasAttachments; int pagesize = 10; int offset = 0; Boolean more = true; String EmailDateTimeReceived; String EmailItemID; String EmailDisplayTo; ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013); service.Credentials = new NetworkCredential("my id", "my password"); service.PreAuthenticate = true; service.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx"); service.TraceEnabled = true; service.TraceFlags = TraceFlags.All; ItemView view = new ItemView(pagesize, offset, OffsetBasePoint.Beginning); FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, view); view.PropertySet = new PropertySet( BasePropertySet.IdOnly, ItemSchema.Subject, ItemSchema.DateTimeReceived, ItemSchema.DisplayTo, EmailMessageSchema.ToRecipients, EmailMessageSchema.From, EmailMessageSchema.IsRead, EmailMessageSchema.HasAttachments, ItemSchema.MimeContent, EmailMessageSchema.Body, EmailMessageSchema.Sender, ItemSchema.Body) { RequestedBodyType = BodyType.HTML }; view.Traversal = ItemTraversal.Shallow; service.LoadPropertiesForItems(findResults, view.PropertySet); foreach (EmailMessage email in findResults) { Sender = email.From.Address; Subject = email.Subject; EmailDateTimeReceived = email.DateTimeReceived.ToShortDateString(); blnHasAttachments = email.HasAttachments; EmailItemID = Convert.ToString(email.Id); EmailDisplayTo = email.DisplayTo; EmailBody = email.Body; //.Text; //string[] Recipients = email.ToRecipients; } }
Any help on this appreciated !
Regards,
Rohit
Hi,
I am trying to list the calendar entries for a shared mailbox, but I am not sure how to do it. I have only just found out about EWS but it seems to be the solution to what I need.
I have some code that lists the calendar entries for the logged on user and displays them in a text box (just so I can see the info). The code below shows the main routine that gets the calendar info
Imports System.Collections.Generic Imports System.Linq Imports System.Text Imports System.Threading.Tasks Imports Microsoft.Exchange.WebServices.Data ' This is the Exchange Web Services API. Private Sub Button_GetCalendarInfo_Click(sender As Object, e As EventArgs) Handles Button_GetCalendarInfo.Click Dim _EWSExchangeService As New ExchangeService(ExchangeVersion.Exchange2010_SP2) 'Use the default credentials of the logged on user _EWSExchangeService.UseDefaultCredentials = True ' Call AutoDiscover to return the URL of the most efficient CAS server for a given email address _EWSExchangeService.AutodiscoverUrl("SharedMailbox@domain.com", AddressOf RedirectionUrlValidationCallback) ' this line will only get info from the logged on user 'Define a calendar Date range in which to search for appointments Dim EWSCalendarView As New CalendarView(DateTime.Today, DateTime.Today.AddDays(1)) ' Search for Appointments in the Calendar folder during the time range specified by the CalendarView above Dim appointments As FindItemsResults(Of Appointment) = _EWSExchangeService.FindAppointments(WellKnownFolderName.Calendar, EWSCalendarView) Dim MeetingSensitivity ' What sensitivity is the calendar, i.e. Normal or Private Dim MeetingShowAs ' Is the Meeting classed as Free, Tentative, Busy, Out of Office For Each meeting In appointments TextBox_CalendarEntries.AppendText("Start: " & meeting.Start & " End: " & meeting.End & " Subject: " & meeting.Subject & vbTab & vbTab & " Sensitivity: " & Meeting.Sensitivity & vbTab & " Status: " & Meeting.LegacyFreeBusyStatus & vbLf) Next End Sub
I have seen a post where the following was mentioned, but I don't know how to incorporate that into my code.
FolderId folderToAccess = new FolderId(WellKnownFolderName.Calendar, "<email address of shared calendar>"); In a FindAppointments call, that would look like: service.FindAppointments(new FolderId(WellKnownFolderName.Calendar, "<email address of shared calendar>"), calendarView);Any help would be greatly appreciated.
Just some line to report my experience with the library EWS JAVA API (ews-java-api found at github).
I was trying to send email from my java test application via the EWS service published by an Exchange Server with only NTLM authentication enabled.
The first tries were all unsuccessful, resulting in a authentication problem.
In the end I found the post 14702764 at stackoverflow (how-to-use-ldap-authentication-for-the-exchange-web-services-connection-in-java) that solved my problem.
Once I changed the inner class NTLM inside EwsJCIFSNTLMScheme.java as described in the link above, the problem of authentication via NTLM disappeared.
Following is the error occuring before I changed the libary code:
2014-09-21 01:19:48,818 INFO [AuthChallengeProcessor] - NTLM authentication scheme selected
2014-09-21 01:19:48,940 INFO [HttpMethodDirector] - Failure authenticating with NTLM <any realm>@test.domail.com:443
Exception in thread "main" microsoft.exchange.webservices.data.ServiceRequestException: The request failed. null
at microsoft.exchange.webservices.data.SimpleServiceRequestBase.internalExecute(SimpleServiceRequestBase.java:63)
at microsoft.exchange.webservices.data.MultiResponseServiceRequest.execute(MultiResponseServiceRequest.java:142)
at microsoft.exchange.webservices.data.ExchangeService.internalCreateItems(ExchangeService.java:464)
at microsoft.exchange.webservices.data.ExchangeService.createItem(ExchangeService.java:535)
This is the code fragment to replace in file EwsJCIFSNTLMScheme.java :
private class NTLM {I request list of contacts using FindItem operation with following xml
<m:FindItem Traversal="Shallow"> <m:ItemShape> <t:BaseShape>IdOnly</t:BaseShape><t:AdditionalProperties> <t:FieldURI FieldURI="contacts:DisplayName" /><t:FieldURI FieldURI="contacts:CompanyName" /><t:FieldURI FieldURI="contacts:JobTitle" /><t:FieldURI FieldURI="contacts:Department" /><t:IndexedFieldURI FieldURI="contacts:EmailAddress" FieldIndex="EmailAddress1" /></t:AdditionalProperties> </m:ItemShape><m:IndexedPageItemView MaxEntriesReturned="500" Offset="0" BasePoint="Beginning" /><m:ParentFolderIds> <t:DistinguishedFolderId Id="contacts"/></m:ParentFolderIds></m:FindItem>
And it works great, but some contacts has very strange values of emails. For example:
<t:Contact><t:ItemId Id="AA=" ChangeKey="EQAAH/ps"/><t:DisplayName>User Name</t:DisplayName><t:CompanyName/><t:EmailAddresses><t:Entry Key="EmailAddress1">/o=My Company/ou=Exchange Administrative Group (FYDI)/cn=Recipients/cn=User Name (uname)a</t:Entry></t:EmailAddresses><t:Department>User Department</t:Department><t:JobTitle>User Title</t:JobTitle></t:Contact>
I hope, somebody will help me.
Thanks in advance