The Microsoft Exchange Email Server Plugin has been discontinued by Practice Insight and is no longer supported. However, the source code is openly available for individual use. Please check here.
The Microsoft Exchange Email Server Plugin can be configured to automatically save the organization's incoming and outgoing emails to Patricia. This will occur where a valid case reference is found in the subject line, and/or within the first 4 lines of the email content. Once a valid case reference has been located the email is automatically saved to Patricia. For emails being received directly into an inbox within the organization, a color-coded category can be set and automatically applied to all emails that have been saved to Patricia. An example is provided in the screen shot below:
A ‘Do Not Save’ string can be set allowing email authors to selectively disable the save functionality, if for any reason it is not desirable for a given email to be saved to a case. The string is specified in table PAT_DMS_SETTINGS, the relevant key is auto.save.skip.subject.key.
Download Microsoft Visual Studio Express 2012 from http://www.microsoft.com/en-us/download/details.aspx?id=34673 (select file "wdexpress_full.exe" to download)
The source code can be downloaded here: https://dl.dropboxusercontent.com/u/13110611/nuxeo/pi-nuxeo-exchange.zip
When open the source code with Visual Studio, we need to:
1) Change the .Net framework according to the Exchange server version.
2) Change log4net reference.
3) Copy the two Exchange DLL files from the Exchange server to the development machine: Microsoft.Exchange.Data.Common.dll and Microsoft.Exchange.Data.Transport.dll
4) Change the two exchange data API related references for these two DLLs.
5) Change to "Release" from the dropdown list in toolbar.
and then we can rebuild the solution and get files we need from the release folder.
When using PowerShell or Exchange Management Shell, please always run it as administrator. Otherwise, there will be permission issues.
Name | Description | Default Value |
---|---|---|
CategoryValue | Value that the category header should be set to. | Default value is “Saved” |
CreateEML | Indicates whether an EML file has to be written out. The file will be saved in the same location as the dll. | Default value is false. |
IncludeCaseRefsInHeader | If this property is true, case references will be included in header, and in Outlook user may see multiple tags of case references in addition to the tag "Saved". If it is set to false, then only "Saved" tag will be shown in user's Outlook. | Default value is true. |
SavedDateHeaderName | The header that is stamped to indicate the date it was processed. | Default value is “X-Pi-Saved-Date” |
SavedListHeaderName | The header that is stamped to indicate the case reference list it was saved. | Default value is “X-Pi-Saved-List” |
ServiceAddress | REST service address where the mime data is sent. | No default value. Mandatory field and the value has to be specified. |
SubjectPrefix | Prefix that the subject has to be prefixed with. | Default is null, meaning it is not prefixed with anything. |
WebProxyAddress | Proxy address. Can be used for debugging with fiddler. | Default is null meaning no proxy used. |
Keywords (also known as Categories) are stripped from the message by default. This can be disabled using the "Set-TransportConfig –ClearCategories $false" cmdlet.
Execute the following command in Exchange Management Shell:
Set-TransportConfig –ClearCategories $false
Otherwise, the category will not be shown in Outlook.
Installation of the Transport Agent involves the following:
Please note that the installation script AgentInstall.ps1 does all the steps from step 3 onwards.
In the screen shot below the permissions are given to c:\TransportAgents.
4. Open Exchange management shell as Administrator
5. Restart IIS via IISRESET command.
6. Install the Transport Agent (http://technet.microsoft.com/en-us/library/aa997998(v=exchg.141).aspx)
Install-TransportAgent -Name "PiNuxeoAgent" -TransportAgentFactory "PI.PiNuxeoAgent.MailAgentRoutingFactory" -AssemblyPath "C:\TransportAgents\PI.PiNuxeoAgent.dll"
NOTE: If the shell does not recognize the command, load Exchange Snapin first.
For Exchange Server 2010, execute the following command:
Add-PSSNapin -Name Microsoft.Exchange.Management.PowerShell.E2010
For Exchange Server 2013, execute the following command:
Add-PSSNapin Microsoft.Exchange.Management.PowerShell.SnapIn
7. Enable Transport Agent
Enable-transportagent “PiNuxeoAgent"
8. Restart Microsoft Exchange transport service.
9. Send a sample mail to confirm the behaviour. Use Outlook or send it from Exchange Shell as follows:
Send-MailMessage -To "process@auto.ghfip.com.au" -Subject "Test" -Body "Messageeeeeeee" -SmtpServer "server.ghfex.com.au" -From "process@auto.ghfip.com.au"
The script that installs can be found along with the release files (AgentInstall.ps1). This script:
AgentInstall.ps1 -folder “C:\TransportAgents” -mail “process@auto.ghfip.com.au” -server “server.ghfex.com.au”
-folder is the folder where the transport agent dll is.
-mail is the mail address where the test mail is being sent to.
-server is the server that SMTP server for sending the mail
Logging is done through Log4Net. See the following notes on logging:
Logging Notes:
Some of the issues that may occur are (not necessarily because of the agent, but quite often because of Exchange’s interaction with agent, clashes with other agents, some exchange settings etc)
The first step in resolving this issue is to confirm that the agent is running. To do this:
1. Open Exchange management command shell.
2. Run the command Get-TransportAgent and confirm that PiNuxeo agent is installed and enabled.
If you got this message:
File C:\ex2010-release-20140605\InstallAgentExch2010.ps1 cannot be loaded. The file C:\ex2010-release-20140605\InstallA gentExch2010.ps1 is not digitally signed. The script will not execute on the system. Please see "get-help about_signing " for more details.. At line:1 char:27 + .\InstallAgentExch2010.ps1 <<<< + CategoryInfo : NotSpecified: (:) [], PSSecurityException + FullyQualifiedErrorId : RuntimeException |
Then please run the command in the 'Exchange Management Shell'
Set-ExecutionPolicy Unrestricted |
After the plugin is installed successfully, turn it off:
Set-ExecutionPolicy Restricted |
If you got this message:
Could not load file or assembly 'file:///C:\TransportAgents\PI.PiNuxeoAgent.dll' or one of its dependencies. Access is denied. + CategoryInfo : InvalidArgument: (:) [Install-TransportAgent], FileLoadException + FullyQualifiedErrorId : 3A3ADC09,Microsoft.Exchange.Management.AgentTasks.InstallTransportAgent Transport agent "PiNuxeoAgent" isn't found. Parameter name: Identity + CategoryInfo : InvalidArgument: (:) [Enable-TransportAgent], ArgumentException + FullyQualifiedErrorId : 78732C6B,Microsoft.Exchange.Management.AgentTasks.EnableTransportAgent |
This may be caused by two reasons:
1) Check if the files in C:\TransportAgents are green, if so, we need to open "Properties" dialog, and then select "Advanced..." and then uncheck "Encrypt contents to secure data". Do the same for all green files.
2) We need to restart the IIS using iisreset command. For more information please see the references.
References:
If the agent is running, turn on the debug flag in the pinuxeoagentconfig.xml file and restart transport service
<root>
<level value="All"/>
<appender-ref ref="RollingFileAppender"/>
</root>
Set the level flag to all as above. This turns on all levels of logging.
Agent logs can be found at the same location as the dll. If the debug level is on, it adds detailed trace info to the file which can be used in troubleshooting.
In case of error or an exception, details along with where the exception occurred can be found in the log file.
Each message has the following entries at the start and end and a few in between. If the two entries are present, the message is correctly picked up and processed with the agent and any issue with the message delivery has occurred after the agent processed.
ProcessMessage(): Start <Message subject>
ProcessMessage(): End<Message subject>
If there was an issue with message delivery and the agent logs indicated successful processing by the agent, certain exchange tools and utilities can be used to further diagnose the issue. Some of them are listed here, but an exchange administration is needed to run and analyze these issues. This is beyond the scope of this document.
http://technet.microsoft.com/en-us/library/bb125018(v=exchg.150).aspx