Awhile back I announced that there would be a “resource kit” for Service Manager which would include a bunch of things that we already had put out on the blogs like…
- Bulk Enumeration Value Creator Spreadsheet
- Ramp up materials – twelve one hour+ recorded Live Meeting sessions with the Program Managers covering a wide range of topics
- Architecture Visio diagram
- FastSeal.exe
- Database queries
- Service Manager Visio stencil shapes
- Various solution management packs for things like sending notifications to reviewers, hiding the extensions tab, etc.
- CSV Connector
- Basic Service Requests
- SLA Management
- Code samples like how to work with enumerations, type projections, creating and updating objects like incidents, etc.
and some new things…
- Exchange connector: Process emails sent to an email inbox on an Exchange server. Convert new emails to new incidents and update incidents for replies to an email address.
- Send message to a user related to the incident from the console. Message can be optionally logged in the action log.
- Visio diagram of the entire SCSM data model including classes, properties, and relationships.
We’ve decided that instead of packaging up all of this stuff as one downloadable “resource kit” package we would create a Tools/Downloads page on TechNet. Then we can add to it whenever we want and point to all kinds of locations like CodePlex, third party software vendors, blogs with tools attached, and microsoft.com/downloads to get releases from Microsoft. It will be one convenient place to get all the tools and solutions available for Service Manager and we can update it continuously without the overhead of a release.
While it will take just a couple more weeks to set up the Tools page on TechNet….
I’m pleased today to announce the release to microsoft.com/downloads the Exchange Connector and the Send Email solution! You can get it from here:
Note: allow up to 30 minutes from the posting of this blog post for worldwide replication on the microsoft.com/downloads site.
Exchange Connector
It’s taken awhile to build these solutions because I had them thoroughly tested by about 15-20 customers. These customers found bugs and submitted feature requests that I went ahead and implemented to expand the scope of the Exchange connector to include a lot of additional capabilities beyond the scope defined originally. The Exchange Connector now features the following capabilities:
- Create incident from email (replaces out of the box functionality; just turn it off)
- The sending user is looked up in the CMDB and related to the incident as the affected user
- The email subject becomes the incident title
- The email body becomes the incident description
- Update incident action log from email
- Resolve or close incidents from email
- Approve/reject change requests from email
- Update change request “action log” from email
- Mark manual activities completed from email
- Add email file attachment to work items as attachments
- Emails can be sent in from outside the organization
- Emails can be sent from users which do not exist in the CMDB yet and a new user record will be created for them and related to the incident
Send Email Solution
The Send Email solution is a separate solution that I’ve packaged with the Exchange Connector for convenience, but it can be deployed with or without the Exchange connector technically. When you have both of them deployed and configured correctly you can enable the end-to-end lifecycle for emails around incident management. For example, an analyst can be looking at a ticket and click a ‘Send Email’ task to request additional information from the affected user. When the user replies to that email with the additional information, the incident is automatically updated.
Important Notes
- I really recommend using the included deployment guides. Deploying both of these solutions can be tricky and really require reading the deployment guide.
- These solutions are not officially supported by Microsoft and are not a part of the Service Manager product. You can provide feedback, report bugs, request new features, etc. on the forums but there are no guarantees on anything.
- For those of you that have been testing pre-official-release versions of these solutions please follow the upgrade steps in the deployment guides. You may need to close the console or stop the System Center Management service to replace the DLLs.
- The Exchange connector and Send Email solution are not localized. You can however specify keywords in different languages for the Exchange connector to use to process emails with.
Thank You!
Lastly a big, huge thank you to all the community testers that made this possible. You know who you are. I really appreciate the effort you put in to test these solutions, provide feedback, and report bugs! Thank You!
Enjoy!
Update: Chris Ross put together a nice demo video of installing, configuring, and testing the Exchange connector . Thanks Chris!
Dear Travis,
again i am getting the error with autodiscover.how can we change the Exchange web service URL to connect to instead of relying on the AutoDiscover service.
Please post questions to the forums:
social.technet.microsoft.com/…/servicemanager
@dootyfree – A new incident is likely being created because the incoming email doesnt have the work item ID in sqaure brackets in the subject. Please take a look at the documentation. It explains this.
@Stephane-OTG
Are you asking how to add line breaks without using HTML?
@Mikael Karlsson
No sorry, the Exchange connector requires Auto Discovery.
Hi Travis,
So the next release will fix a couple of bugs, it would give us the chance to manually configure the exchange web service url, anything else?
Any plans regarding adding the e-mail and its contents as an attachment to the incident?
Thanks!
German
Hi Travis
I am using SP1 + CU1.
The sulution of the problem was found by ButtyT. Please look at this topic: social.technet.microsoft.com/…/bd56f4d2-0304-426c-8533-9becdb05a7d7
When I added my username to internal SCSM group "Incident Resolvers" the SendEmail have earned according to the scenario.
@German –
I think I generally understand now, but it would probably be better to take this discussion into email. twright at microsoft dot com. Please give me more background information.
@Eldar and Steve –
Just to confirm – you are using SP1?
@Robert –
Yes in EC 3.0 (in private beta with TAP Customers for now) you will be able to have multiple Exchange connectors that are each monitoring a mailbox and are each configured with a differe "on create" and "on update" template.
EC 2.0 can't monitor multiple mailboxes. One way customers have done what you are trying to do is they create routing rules in Exchange that move the mail from various maiboxes to the one central mailbox that the Exchange connector is monitoring. Each time it moves the mail it tags the subject with some kind of keyword. Then they set up incident event rules that look for those keywords in the incidnet title and apply a template to route/classify it appropriately.
@Alan –
Ah, that's helpful. This event is usually a result of configuring the Exchange connector to look for a domain instead of a forest. Can you please check to make sure that you have specified a forest in your Exchange connector configuration?
Hi
I have installed the SendEmail MP. When I was trying to send an email from the console by pressing "Send Email" button this error appeared:
Date: 14.03.2011 19:02:31
Application: System Center Service Manager
Application Version: 7.0.6555.0
Severity: Error
Message: Object reference not set to an instance of an object.
System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.EnterpriseManagement.UI.SdkDataAccess.ConsoleTaskHandler.DoTask(IList`1 navigationNodes, NavigationModelNodeTask task, List`1 parameterList)
at Microsoft.EnterpriseManagement.UI.SdkDataAccess.ConsoleTaskHandler.DoTask(IList`1 navigationNodes, NavigationModelNodeTask task)
at Microsoft.EnterpriseManagement.ConsoleFramework.TaskHandler.TaskHandlerOperation.ExecuteTaskJob(Object sender, ConsoleJobEventArgs jobArguments)
at Microsoft.EnterpriseManagement.ConsoleFramework.WindowJobRecord.ExecuteBackgroundJob(Object sender, ConsoleJobEventArgs eventargs)
at Microsoft.EnterpriseManagement.ServiceManager.UI.Console.ConsoleJobExceptionHandler.ExecuteJob(IComponent component, EventHandler`1 job, Object sender, ConsoleJobEventArgs args)
An error appears only when "Add message to action log" is checked. But function works fine when "Add message to action log" is not checked. When the error does not appear ("Add message to action log" is not checked) I see a successful event in incident workflow
log "SendEmail customizations". But in incident workflow log "SendEmail customizations" there is no any events when error appears ("Add message to action log" is checked).
So it seems that when error appears the suitable workflow does not start.
This bug had been appeared before:
social.technet.microsoft.com/…/dc2c03b2-2da1-46d8-9027-82e9eac86efb
But solution from this topic does not solve the issue in my case.
@Stephane-OTG
Choose not to use HTML formatting.
Put a <pre> tag at the beginning of your email notification template and enter the plain text of the email as you would like it to appear including line breaks.
The <pre> tag will not be shown if you are using Outlook as a client and the line breaks will be preserved
@Dan_MS – the data model will be coming in the next couple of weeks. It's done. I just need to finish validating it for accuracy.
@rafa –
It sounds like the template that you have configured the Exchange connector use to update the incidents has the tier 2 support group selected in it. Change that to blank if you dont want the Exchange connector to change the support group when it updates incidents.
@Brad – I'm sorry for the delay. It is unfortunately out of my hands and has been for a few weeks now. Our legal and release team are just not moving this through as quickly as we all would like unfortunately. Hang in there…
I am testing the connector now, sending mails from outlook and generating new incidents – it works fine. Attachments fx. word docs and stuff – also fine appears as attached files under related items. BUT – if i copy a screendump into my outlook mail, and sends it to my servicemanager – it appears as a new incident without attachement and without showing the screendump at all…
Do i need to set something up, or is this a non-supported feature 🙂
@ Kyriakos Ioannou
The new version of the Exchange connector that I am going to release soon is going to include the ability to manually configure the Exchange web service URL so that in cases where auto discover doesnt work customers can manually specify the URL.
@German – sorry its the other way around. If the sending user is the affected user then I create a TroubleTicketHasUserComment. Otherwise I create a TroubleTicketHasAnalystComment.
@Erling – I get this request quite often. I need to look into it more, but it might not be possible until a needed improvement in the workflow infrastructure is completed in the R2 release. As of right now it is the top feature on the list for a future version.
@bcehr
I'll add that to my to do list. Thanks for the suggestion!
@maxserg – yes.
@Travis:
Awesome! That saved me from another -more complex- custom workflow! 🙂
Thank you very much!
@Alan –
I have an idea. Is the account that is being used for your Workflow Run As Account also in the SCSM Administrators user role?
@Alan – thanks for the heads up. Please send the information to me as soon as possible (twright @ micorosft). I'm going to release a new version of the Exchange connector soon and could try to include bug fixes for these things if needed. I know about the email attachment issue. That has already been fixed.
@Travis:
You've probably seen/tried this, but just in case you didn't:
social.technet.microsoft.com/…/6205b9ed-e059-4be8-b302-78fdbe7154e7 (last post has this other link: http://www.independentsoft.de/…/downloadmessagetomsgfile.html)
http://www.aspose.com/…/saving-messages-from-exchange-server-mailbox-in-eml-and-msg-format.html
Also, a small suggestion if you think that'd be possible:
If the user that sent the e-mail is the affected user, could it be possible to create a TroubleTicketHasUserComment relationship instead of a regular action log?
That'd help a lot for Analysts to be notified whenever the end user responds to their questions.
Thanks!
@Eldar –
Thanks for reporting the bugs. I was aware of the first one and have already fixed it. I've created a bug to track the second issue and will try to fix that as well. These fixes will be included in the next version of the Exchange connector.
Dear Travis
Any news on the Exchange connector v 2?
Thanks,
Kyriakos Ioannou
@Erling –
Images in the message body itself will not be added as attachments in the released version. I didnt enable it because I didnt want to have a large number of file attachments being created by images in peoples email signatures. I've already fixed the code to allow this and will provide an option to create attachments from inline images in the next release. I'm also going to look into providing a configuration option to ignore certain filenames so that images in corporate standard signature templates can be ignored.
To answer your next question… When will the next relaese come out? Answer: I dont have a date in mind. I'm going to see what other feedback comes in and respond to that in a single future release.
In deployment guide:
"If you are going to use the Exchange Connector to process incident email replies make sure you include the Work Item ID in square brackets in the subject."
I dont using exchange connector, but intersting in sendmail solution.
All subjects in replied emails have square brackets, for example:
RE: Incident [IR10]
However this incident not updated and created new incident with id IR11.
Is that solution works only with exchange connector?
@Peter –
My suggestion for how to notify the anlyst when the user has replied is to do the following:
1) Create a new incident status list item (aka enum) called 'Updated by user'.
2) Create an incident template that sets that value.
3) Select that template as the one to be applied when the incident is updated in the Exchange connector configuration.
4) Create an incident event workflow that is triggered by the incident status changing FROM not equal to Updated by user TO Updated by user. Send the notification to the assigned to person.
You should be able to see the reply in the main console on the incident form in the action log. Make sure you refresh the incident if you already have it open.
Cheers!
@Travis,
We're using a PowerShell script to parse the action log in order to get an e-mail reply for an external service desk:
filter Get-ExtTicketNumber{
($_ |select-string -pattern "d{13}" |select -expand Matches).Value
}
if ($Incidents -ne $null) {
$ActionLogRelClass = Get-SCSMRelationshipClass System.WorkItem.TroubleTicketHasActionLog$
$AnalystCommentRelClass = Get-SCSMRelationshipClass System.WorkItem.TroubleTicket.AnalystCommentLog$
$UserCommentRelClass = Get-SCSMRelationshipClass System.WorkItem.TroubleTicket.UserCommentLog$
foreach ($inc in $Incidents) {
$extticket = Get-SCSMRelatedObject $inc -Relationship $ActionLogRelClass |Sort TimeAdded |select Description -last 2 |%{$_.Description} |Get-ExtTicketNumber |select -last 1
if (!$extticket) { $extticket = Get-SCSMRelatedObject $inc -Relationship $AnalystCommentRelClass |Sort TimeAdded |select Comment -last 2 |%{$_.Comment} |Get-ExtTicketNumber |select -last 1 }
if (!$extticket) { $extticket = Get-SCSMRelatedObject $inc -Relationship $UserCommentRelClass |Sort TimeAdded |select Comment -last 2 |%{$_.Comment} |Get-ExtTicketNumber |select -last 1 }
if ($extticket) {
PrintMsg (Echo $inc.id "External Ticket #" $extticket)
$inc |Set-SCSMObject -PropertyHashtable @{
ExternalTicketType = "Microsoft"
ExternalTicketNumber = ([int64]$extticket)
}
}
}
}
So it's looking for a 13 digits number and then updating two custom fields we added to the incident class.
This is running with the v1 of the Exchange Connector.
Hope that helps!
@Simon: The workflow should have more than just that… if you look at the SendEmail deployment doc you'll see that you have to manually edit the management pack to include also whenever the message itself changes (check pages 7 and 8).
@Todd – you need to create a registry key here:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftSystem Center Service Manager Exchange ConnectorExchangeURL
It should have a value similar to this:
smdc.fabrikam.com/…/Exchange.asmx
In the case of your hosted service provider I doubt this is going to work unless you have something like ADFS set up to enable the cross domain authentication.
@Steve –
Exchange connector 2.0 doesnt work with O365 because O365 doesnt work with integrated authentication like an on premise Exchange server would. It expects credentials to be passed to it in the format username@domain and the Exchange connector is presenting them as domainusername. <SideNoteRant> Somebody please explain to me why we have two different formats for presenting usernames! </SideNoteRant>
I built a one off version of the Exchange connector that reads the login/password out of the registry and uses those to present the credentials to O365 an tried it out with one customer and got it to work. We are in the process of deciding what to do next with the Exchange connector so we can get it to the point where it is officially supported and all that. Stay tuned.
Hi Travis
Thank you. I will be waiting for the next release. Another one scenario:
Incoming email contains an Incident_ID in the topic that equals the existing Incident_ID in SCSM but from username that differs from affected user. In this scenario I would like to add just a comment to existing incident, but SCSM created a new incident. Is it bug?
works like a charm!
Thanks a million for your help
@Matt –
have you upgraded to Exchange connector 2.0? I think I fixed that bug in 2.0.
@Alan –
#2 is expected since you are trying to create a new incidnet. It is not a warning, just an informational event.
Do you have a user named 'Unknown' in your CMDB?
@Michael –
The Workflow Account and the email address you specified in the Exchange connector wizard must be the same and of course a mailbox must be provisioned on the Exchange server for that account. Can you please double check both of those things for me?
@maurice –
What is the behavior that you are seeing? Are the incidents created but the user is not?
@Mike –
It should be released this week.
@Maria
Sorry I dont know much about how the Exchange Autodiscover service works. I think it tries to use DNS as well. Your configuration sounds a little unusual so I'm not sure what to expect there. There are some troubleshooting guides referenced in the Exchange connector documentation that might help you sort it out.
@Kyriakos –
Explicitly specifying the Exchange connector web service URL is a feature of Exchange connector 3.0 that will be out soon. EC 3.0 only works with SCSM 2012 though. Until then there isnt a way to specify the URL to connect to. Autodiscover is the only way to go with EC 1.0 and 2.0.
@Rob –
Please contact me via email so we can work on this together in more detail
twright@microsoft
@Brad –
Please follow up with me offline. twright @ microsoft dot [com]
Great stuff! exactly what I needed.
Quick question: when sending email out, I don't seem to be able to add carriage returns (CRLF) to the email message (unless I add the HTML <br/> code).
Is there anyway to correct this?
Thanks again for your fantastic work
@Kyriakos Ioannou – probably this week or next.
@German –
Thanks for those links! I wonder if it really will be that easy. I looked around for this information for hours. I'll see if I can get that into this next release.
I've already fixed the TroubleTicketHasUserComment issue. If the person updating the incident via email is the assigned to user i create a TroubleTicketHasAnalystComment. Otherwise I create a TroubleTicketHasUserComment.
@Eldar –
I found and fixed the & bug. The fix will be included in the next release of the Exchange connector. I dont know exactly when that will be right now though.
@German –
The only other new "feature" is that it will take inline images in the message body and add those as attachments. I spent quite a bit of time trying to figure out how to get the email message from Exchange web service and store it as a .msg file attachment on the incident. As far as I can tell there is technically no way of doing that unfortunately. If anybody has any ideas please let me know.
@Gerson –
Sorry, we dont have any plans to release the source code to this project.
@Gerson –
I dont think I understand what you are trying to do. Can you please explain in more detail?
@Kris –
Exchange connector 3.0 will have an option which will enable connecting to O365. In an emergency I can provide a version of Exchange connector 2.0 which works with O365.
@Kristoffer Stormark
As far as I know there is no way to support those kind of emails. I'll add it to the to do list for the next version and we'll look into it some more though.
YES YES and YES! Have already downloaded, read the notes and will implement in 2-3 hours 🙂
one question – any chance that it will be possible (perhaps in version 1.1) to handle fx. 5-8 different incomming email-adresses, so that we can dispatch the incidents to different ques based on with email adress the enduser have sendt the incident to.
We have 7 helpdesk departments one for each domain with 7 different email adresses, so we need to route the incomming mails to 7 different dispatchers if possible.
Is that the real v2? It's weird that there's no official announcement…
I tested it on my lab and I haven't seen any of the changes that were going to be included.
@Adam –
Did you modify the SendEmail MP XML to support the new list item?
That's correct.
When adding a line break by using "ENTER", it doesn't do it in the final email.
The workaround is to add <br/> in the message itself, but the helpdesk guys have already complained 🙂
I stand corrected… inline images is working… e-mail updates from the affected user are still coming in as System.WorkItem.TroubleTicketHasActionLog
Travis,
When trying to enable the exchange connector, we get the following error in evtviewer.
Note that we have autodiscover running,the only issue is that autodiscover is published via TMG.
Exception Message: Autodiscover blocked a potentially insecure redirection to
autodiscover.domain/…/autodiscover.xml. To allow Autodiscover to follow the redirection, use the AutodiscoverUrl(string, AutodiscoverRedirectionUrlValidationCallback) overload.
Is there any workaround on this?
Hi Travis,
is there a time estimation on when the new connector will be released?
@Adam –
Yes, that's the idea. Add a new list item & notification template and then follow the instructions to add another rule.
I had another customer tell me about what appears to be the same issue – the XML gets modified on export. So – you might need to keep your original around and use that as the starting point rather than an export.
Hi Travis
I found 2 bugs with Exchange Connector.
The connector stops processing imcoming email when sender's address contains a "&" character in username (for example noreplyT&I@domain.com).
When it happens I have to delete these emails from the mailbox manually and then connector continues processing a remaining emails normally.
Woo hoo! The Exchange Connector v2 is now out on the download site!!!
http://www.microsoft.com/…/details.aspx
@Jonathon Moore
If you follow the instructions in the doc that is provided with the solution it will show you how to set up criteria which says:
If the Message changes from Null to Not Null
OR
If the Message before the change is not equal to the value after the change
By having both of those criteria it will trigger in the first message property value transition and all subsequent transitions.
You just made my day! (or should I say month?)
Thanks, Travis!! 🙂
Awesome news, Travis! What we've been waiting for a while!!!
The email related stuff is nice, but Im still missing the database model.
This is great…just have to upgrade my Exchange infrstructure now!!!! No way to get this to work in Exchange 2003?
Two mistake in "Deployment Guide for System Center Service Manager – Exchange Connector" document
both in "CR Lifecycle, p.3"
first: "If the configurable keyword for completion of the activity (example: ‘[Completed]’) is present " – where? in the subject or in the body?
second: "Any file attachments are added as file attachments to the review activity". It must be "Any file attachments are added as file attachments to the manual activity" I'm think?
Using sendemail without the exchange connector, I've got the emails going out, but on return the update email is creating a new incident
….unless the exchange connector can work with exchange 2003?
Hi. Is there any way to configure the connector without having autodiscovery in place?
This is a great solution Travis!! Nice One!
The AutoDiscovery service is working fine, it passes all the tests in Outlook 2010 when performing a "Test Email Autoconfiguration"
However, the Exchange Connector fails with:
"Exception Message: When making a request as an account that does not have a mailbox, you must specify the mailbox primary SMTP address for any distinguished folder Ids."
Is there any further configuration required/available?
Any suggestions on how to notify assigned users that the affected user has replied to their "additional information request". I am also unable to find the affected user reply in the console, I can see the reply in the portal logged on as the affected user, but is the email reply not accessible from the console?
Regardless of the above, I love both features, keep up the good work!
Great blog! Thanks a lot.
Our Service Manager is in a different domain than the Exchange server with no AD trust, but DNS secondary zones to resolve names. I receive this event: "No matching Autodiscover DNS SRV records were found." (Exchange 2010 uses AD autodiscover and no DNS SRV record?!). Does it work with non trusted domains?
Thanks a lot
Travis, just wanted to say thanks for your suggestion on how to notify the assigned user/analyst of a affected user reply. Works well!
I have a similar scenario to Maria, our parent IT organization houses our Exchange Server and my department is in a separate untrusted domain with its own Service Manager. I tried setting up my Exchange Connector to monitor a mailbox on the Exchange (over
in the other domain) but after seeing an error on the SCSM Console I look in the Event Logs to get:
"Exception Message: Autodiscover blocked a potentially insecure redirection to
webmail.yadayada.com/…/autodiscover.xml. To allow Autodiscover to follow the redirection, use the AutodiscoverUrl(string, AutodiscoverredirectionUrlvalidationCallback)overload."
I researched this a little and have seen references about "validating the url" and "whitelisting the url" but I’m not sure how to do this safely with respect to SCSM and without rearranging the present network setup. Keep in mind we have no DNS issues between
the two domains and everything resolves smoothly.
If anyone has any suggestions or a fix I’d greatly appreciate your input.
I installed the connector and it works great but i dont seem to be able to create new users in the CMDB from external emails. am i missing something??
@Maurice & @Travis,
I'm receiving the same issue – emails from external are not being created I can see two seperate event logs as follows:
1) Indicating the email is going to be processed
2) An error stating Process Item: Cannot find work item ID prefix in Subject
I've sent the exact same email from a valid CMDB account at it works fine so I suspect (2) is a bit of a red herring?
@Travis – Thank you very much for your reply… There is no 'Unknown' User in the CMDB. Do I have to manually create one – if this is in the readme you can tell me to RTFM 🙂
Thanks again for your help…
Travis, SendEmail piece works great! Is there anyway to extend SendEmail to also work with Change Request? Since our users create CR's in the portal, we need the same life cycle abilities we have in incidents. I see I can add the Action Log functionality to the CR to handle replies with your MP, but I need something that I can use to actually generate the e-mail in the ticket since by default SendEmail only extends the Incident class? Thanks!
Travis, that would be great, thanks!
@Travis –
Thanks again for the quick feedback, workflow user was already a member of the SCSM Administrator's group. I have scanned the Event logs in depth and the only error generated related to the specific inbound email is as follows:
Log Name: Operations Manager
Source: Health Service Modules
Date: 16/03/2011 08:42:53
Event ID: 33880
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: <REMOVED>
Description:
A Windows Workflow Foundation workflow failed during execution.
Workflow Type: Microsoft.SystemCenter.ExchangeConnector.ProcessEmailsWorkflow
Workflow Identifier: db5109a6-c601-3ac3-9638-6d50c7962bc8
Exception Type: System.DirectoryServices.ActiveDirectory.ActiveDirectoryObjectNotFoundException
Exception Message: The specified forest does not exist or cannot be contacted.
Exception Stack: at Microsoft.SystemCenter.ExchangeConnector.ExchangeInbox.ProcessMail()
at Microsoft.SystemCenter.ExchangeConnector.ProcessEmailsWorkflow.Execute(ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.ActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.CompositeActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.ActivityExecutor`1.Execute(Activity activity, ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.ActivityExecutorOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime)
at System.Workflow.Runtime.Scheduler.Run()
Event Xml:
<Event xmlns="schemas.microsoft.com/…/event">
<System>
<Provider Name="Health Service Modules" />
<EventID Qualifiers="49152">33880</EventID>
<Level>2</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2011-03-16T08:42:53.000000000Z" />
<EventRecordID>5114969</EventRecordID>
<Channel>Operations Manager</Channel>
<Computer><REMOVED></Computer>
<Security />
</System>
<EventData>
<Data>Microsoft.SystemCenter.ExchangeConnector.ProcessEmailsWorkflow</Data>
<Data>db5109a6-c601-3ac3-9638-6d50c7962bc8</Data>
<Data>System.DirectoryServices.ActiveDirectory.ActiveDirectoryObjectNotFoundException</Data>
<Data>The specified forest does not exist or cannot be contacted.</Data>
<Data> at Microsoft.SystemCenter.ExchangeConnector.ExchangeInbox.ProcessMail()
at Microsoft.SystemCenter.ExchangeConnector.ProcessEmailsWorkflow.Execute(ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.ActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.CompositeActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.ActivityExecutor`1.Execute(Activity activity, ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.ActivityExecutorOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime)
at System.Workflow.Runtime.Scheduler.Run()</Data>
</EventData>
</Event>
I have exactly the same error as Eldar…
Any idea?
Hi Travis,
We've just gone live with our Service Manager solution. When we get any external email in our Workflow Mailbox, the Exchange Connector stops processing all emails and throws an exception:
A Windows Workflow Foundation workflow failed during execution.
Workflow Type: Microsoft.SystemCenter.ExchangeConnector.ProcessEmailsWorkflow
Workflow Identifier: 2cb4bc8d-5817-9780-c67a-c4c471c1f6e4
Exception Type: System.ArgumentException
Exception Message: The specified string parameter is empty.
Parameter name: name
Exception Stack: at Microsoft.SystemCenter.ExchangeConnector.ExchangeInbox.ProcessMail()
at Microsoft.SystemCenter.ExchangeConnector.ProcessEmailsWorkflow.Execute(ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.ActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.CompositeActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.ActivityExecutor`1.Execute(Activity activity, ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.ActivityExecutorOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime)
at System.Workflow.Runtime.Scheduler.Run()
I have to delete the email after manually creating the incident and then all of the held-up ones get processed on the next run.
I've created an "Unknown" CI user as you suggested but it's not made a difference.
Are you able to suggest how we can get this working?
Thanks,
Rob
Hi Travis,
Some additional info that may help you out in your next version. When an attachment contains another email, it seems the Exchange connector stops processing – I will dig out the actual event log entry and send through to you via email.
Also, when an inbound email is digitally signed it also does not process – as above will email you the event log.
Alan
Hi
A few of our users are digital signing there emails
And the connector can’t read these, they just remains unread in the inbox folder
I think this I a bug with the connector
Hi
Thanks for the answer, for now we implantet a workaround jusing exchange transport Rules, and rerouting signed emails to a human monitored emailaress for manual read and apply.
Hi hope some of you out there have an answer for my problem here.
I need a way to route our incoming mails to a specified support group.
As for now the connector can only reed the workflow account so the scenario here is
that emails sent to
printer@demo.com and hardware@demo.com both goes to the account workflow@demo.com
Emails sent to these addresses will result in a new incident.
Is there any way to apply some workflow to see witch of this email addresses the mail was bound for.
In the out of the box exchange function, the entire email header was in the incident, and the solution was to check for a text string in the description field.
I like the new clean stile a lot more, but needs some way to route me email.
Some way it seems that we run into some bugs this week :-D.
If a user attache a dellevery error report, from the systems administrator in Exchange.
the connector wil stop prossesing emails.
This is with or without a emty mail body.
@note to my last post, missed that you have allready, replyed to @Erling about that.
Any new news about that ?
Or is it not going to ship before scsm 2012
@Kristoffer Stormark
We're doing exactly what you want to do regarding routing different e-mail addresses to different support groups by using the Exchange Connector.
All you need to do is create a mailbox for each of those addresses, setup a transport rule in Exchange to forward all e-mails to your workflow mailbox and prepend something to your subject.
For example:
printer@demo.com –> forward to workflow@demo.com and prepend "(print) " to the subject.
In SCSM, you can create a workflow to capture incidents where their title that starts with "(print) " and apply a templates to setup the support groups.
We currently have 4 different e-mail addresses and it's working great for us!
Dear Travis,
Are there any news on exchange connector v2 release date?
Thanks,
We are using the Exchange Connector and Send Mail solution, and they work very nicely for us.
1 thing that we have noticed with the "request info from User" email is that if we have already sent the user an email, and try to send another email, then the workflow won't trigger as the message box is already "not empty"
does anyone have a suggestion for a workflow trigger that will help?
many thanks
Simon
Hi
Is there any way to debug missing userimport.
Our ad connectors are working well, but some useres are missing
My last post, was not to to the exchange connector
Where to post new question ?
Travis:
Any update on the exchange connector? I just keep seeing a week or two. 🙂
We're using Office 365 and the CNAME redirect for autodiscover is stopping the connector from working (autodiscover.company.com redirects to autodiscover.outlook.com). The ability to specify the url in 2.0 is much needed! Thanks for the awesome work.
@Travis:
Thanks for the update. Definitely not your fault, and without you it wouldn't exist at all. I think it's pretty well understood Legal and Release teams work at a pace all their own.
Hey, is there any update on the exchange connector? We're using Office365 as well and really want it to work with Service Manager or we're going to have to go a different software route.
That's great news, Travis! Definitely looking forward to the new version and the ability to work with hosted exchange (like Office 365)!!!
Travis, I recently loaded up the Exchange Connector in our environment but ran into the previously reported "Autodiscover blocked a potentially insecure redirection to…" because we use a hosted Exchange provider and the autodiscover host name was different than our email host name. I was very excited to see version 2 of the connector given the conversation in these comments about exposing the autodiscover URL as a parameter, but I loaded up the new version and didn't see any place to put the autodiscover URL in the connector configuration and I'm getting the same error (though interestly enough, the connector is reporting that it completes successfully, the error is reported in the log). Any thoughts?
Hello Travis,
Would you share the source code? The reason for that is that I need to create a similar function to the 'from:', that's to say, the text after a given string in the body of the email needs to go to a given field of the incident management. Is it possible?
Thanks
Travis:
Trying to get the exchange connector 2 working with Office 365 and keep getting 401 errors when trying to authenticate to the ews. I’m using
podxxxx.outlook.com/…/exchange.asmx, but I keep getting a 401 Unauthorized. However, I can navigate to it via the browser and see the proper XML.
Any ideas?
So is there any way to extract contents from the log and paste it into a field when updating the incident?
Thanks
The post above is not from Travis.. that's is meant to be the first line of the post 🙂
Am I the only person who seems to have a problem where the customization MP that has the XML changes in seems to randomly revert to it's original form? The effect of this is that the SendEmail only works once. This is the third time this has happened and I've had to re-import the MP with the XML changes.
So is there anyone that have tried the exchange connector with Office 365 and get it to work?
I haven´t tried 365 yet, but I´m very intrested in if it will work…
Travis, maybe you know if it will work or not?
@German Minicucci
I believe that the script that I need is very similar.. thanks for your help. I will give a try and post an update later on. What condition have you done to trigger the script? When class incident is created/updated or the one of the Action Log?
@Travis
It's pretty much what the script of German Minicucci does.. some contents of the log is extracted and saved into some incident fields
I have an issue where the connector can only connect to the exchange server when the workflow account is logged in to a remote desktop session on the server that is runnning the connector. If I log in as another user or am not logged in at all I get an error in the event log saying "Exception Message: The request failed. Unable to connect to the remote server", but as soon as I log in to the server with the Workflow Run As account it starts processing messages and then fails again when I log out.
Hello,
We've been using the Exchange connector with great success for about six months, but we've noticed that emails with a blank body cause a worklow failure (see below). It's fairly easy to fix by removing the offending messages from the mailbox, but I was wondering if there was something else we could be doing.
A Windows Workflow Foundation workflow failed during execution.
Workflow Type: Microsoft.SystemCenter.ExchangeConnector.ProcessEmailsWorkflow
Workflow Identifier: 5465bdd1-611f-1810-d801-294cb0d03846
Exception Type: System.NullReferenceException
Hi,
Are there any plans to enable this connector to work with Office 365? I have entered the URL in the registry but receive a 401 unauthorised reply from the Office 365 servers.
We have enabled ADFS to Office 365 as well as single sign on and directory sync. It appears that the connector attempts to authenticate using domainusername but Office 365 requires username@domain. Is there anyway to change this in the registry and manually specify the username to connect with?
Regards,
Kris Wilson
Hi Again,
Only just read your latest post Travis which confirms what I thought about Office 365. I'm more than happy to test for you tyoo as I need to get this working as soon as possible. Feel free to email me at kjw @ iris dot co uk
Hi Travis,
Is there a release date for 3.0?
If you could send me the version of 2.0 that works with O365 it would be very much appreciated and get us out of a hole
Thanks,
Kris
Hi
I know the exchange connector is not supported and this may be an issue to this.
but i try anyway
This is our problem.
Recently we expanded our AD with a new domain lat say xx.contoso.com
users in this domain has yy.contoso.com as primary email adress.
prior to this new domain, a few of the uses had som incidents creaTED by the exchangeconnector
and effected user was set to username@yy.contoso.com
so good so fare.
Now we created the xx.contoso.com domain, and inported all the users by the AD connetor.
and if i open one of the users ther email is correct in the notification tab username@yy.contoso.com
but now if the user email our service desk, incidents effected user is still set to username@yy.contoso.com
and not the AD user.
As a test, i deleted the username@yy.contoso.com user from the user list, but no luck, incidents are still set to the old user objekt.
/Kristoffer
Hi Travis,
I'm loving the send email tool. But I do have one issue with it…
In my workflow I'm checking for message changing from empty to not empty and then sending the email, this works fine but only for the first time I use the 'send email' button.
Is there a way that I can blank the 'Message' field during the send email workflow so that next time I use 'send email' the workflow will still trigger… or if you can suggest a better way of triggering the email send that would also be cool.
Thanks,
Jonathon
Hi All,
I'm currently getting the following on the event logs.
Exchange Inbox: Error while scanning Exchange Inbox for emails from alias(es) 'System.Collections.Generic.List`1[System.String]'
The connector status is "Finished Success" under Connectors in the console.
but no emails is being processed,
Also, the following error below,
A Windows Workflow Foundation workflow failed during execution.
Workflow Type: Microsoft.SystemCenter.ExchangeConnector.ProcessEmailsWorkflow
Workflow Identifier: ff48992c-895e-9a58-d3d6-e075db58b5ae
Exception Type: Microsoft.Exchange.WebServices.Data.AutodiscoverLocalException
Exception Message: The Autodiscover service couldn't be located.
Exception Stack: at Microsoft.SystemCenter.ExchangeConnector.ExchangeInbox.ProcessMail()
at Microsoft.SystemCenter.ExchangeConnector.ProcessEmailsWorkflow.Execute(ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.ActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.CompositeActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.ActivityExecutor`1.Execute(Activity activity, ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.ActivityExecutorOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime)
at System.Workflow.Runtime.Scheduler.Run()
Can you please advise,
Many Thanks,
Nico
I'd like to be able to route incidents using the email connector when emails are sent to different help desk addresses. Example would be when users send to helpdesk@helpdesk.com one template is used, however when they send to operationshelpdesk@helpdesk.com I want to route that to a different support group. I could have used the old connector when it added the TO: email address to the description field, but the version 2 exchange connector does not. Is there a work around for this?
I just got the answer to this on another thread and it sounds to me that EC 3 is the solution.
Thanks!
I have scsm 2010 with CU3, and exchange connector v2, i have a problem,when i send an email to the customer using send email, every time that the customer reply it chenge me the support group,for example if i have an incident with support group tier 2 and customer reply it change to tier 1,i have not using any template, any idea which could be the problem thanks !!
We are using exchange connector 2. We use the sendemail regularly. We have one message type and tried adding another. The first message type still works when using sendemail. but our second message type will not send. Anyone know what we are missing?
Good question.
I wasn't sure if I needed to copy and paste all the xml code again. do I need to add the xml code for each list item?
***Do I add this again?
<Criteria>
<Expression>
<Or>
<Expression>
<And>
<Expression>
<UnaryExpression>
<ValueExpression>
<Property State="Pre">$Context/Property[Type='SendEmail!IncidentSendMailExtension']/Message$</Property>
</ValueExpression>
<Operator>IsNull</Operator>
</UnaryExpression>
</Expression>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<Property State="Post">$Context/Property[Type='SendEmail!IncidentSendMailExtension']/MessageType$</Property>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>{9f6d72ad-1bff-ca89-f619-8d50cd876576}</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<UnaryExpression>
<ValueExpression>
<Property State="Post">$Context/Property[Type='SendEmail!IncidentSendMailExtension']/Message$</Property>
</ValueExpression>
<Operator>IsNotNull</Operator>
</UnaryExpression>
</Expression>
</And>
</Expression>
</And>
</Expression>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<Property State="Pre">$Context/Property[Type='SendEmail!IncidentSendMailExtension']/Message$</Property>
</ValueExpression>
<Operator>NotEqual</Operator>
<ValueExpression>
<Property State="Post">$Context/Property[Type='SendEmail!IncidentSendMailExtension']/Message$</Property>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<Property State="Post">$Context/Property[Type='SendEmail!IncidentSendMailExtension']/MessageType$</Property>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>{9f6d72ad-1bff-ca89-f619-8d50cd876576}</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
** Do I need to add this at the beginning as well?
<Expression>
<Or>
at the begining and Outer <Expression><Or>…. </Or></Expression?
</Expression>
I am going to add some additional details. First I have no problems with just one List type message. I am confused on the directions of how to add a second. Do I go through each of the steps again. Here is what I do: I create a list. Then create the template. Then I create the workflow item. After its all done, I export the MP. Then do I edit it just the same exact way that the directions say? so I simply copy and paste the same code from the previous message list I created?
I notice when I export that it seems to lose the previous xml code I copied previously. Does this info get lost during the export? I also notice when I import the code back in, one of my rules of the workflow is missing. I had 2 rules: 1. send when message type is "equal" to sendmail. 2.when message type is "not empty". the second rule doesn't show anymore. Is this something others are seeing?
Thanks we got both of our Work flows working properly now.
Hi Travis,
Would you be able to ZIP and email me a copy of the Exchange Connector version 2.0 that you customized to make work with Office 365?
SCSM 2012 and EC 3.0 would also be a solution but connector 3.0 is not readily available, so I'd be happy to work with modified EC2.0 that reads credentials from registry.
Many thanks
Colm
Email address: colmcorcoran @ gmail dot com
Many clients are asking for a send mail solution to send email when assignees are blank or when Affected User input is needed to progress a Service Request. This isn’t possible out of the box. Please see the links below to see how this is possible and
much more – http://www.caseddimensions.com/scsm_request_user_input/ &
http://www.caseddimensions.com/scsm_workflow_optimizer/