Validate Email Structure
Background
Emails are required to follow strict formatting according to http://www.w3.org/Protocols/rfc822/ , the Javamail library (API) is shipped with JIRA and reused by JEMH. Most of the time, email content is valid and there are no problems, however:
There are many many ways an email can be broken (apps and scripts can write really broken emails which makes life interesting!) when JEMH receives such messages they are in an interpreted and unmodifiable Message form. When an email has been delivered that has structural problems, processing failure is quite likely that usually results in the message being forwarded to the Profile > Notification > Forward User(s).
What follows is a description of the JEMH Features that can be used to minimise the amount of manual triage and increase the compatibility of customer emails with your JIRA.
Using a Re-Processing Message
As part of JEMH Auditing, some common syntax inconsistencies that prevent correct extraction of content can be fixed by using the Pre-Processing feature of JEMH:
Email > Pre-processing > Use Reprocessed Message : ON
When to know that you need Re-Processing
When a message fails to be processed (without this enabled), use the JEMH Auditing operation to copy the saved audit item to a JEMH Test Case can allow the message to be re-run against the Profile. IF the Test Case succeeds but the original source repeatedly FAILS this is the scenario that can be fixed by Using ReProcessed Message.
Using Pre-Processing Tasks
When something is wrong with the email structure, its possible that it can be fixed through Pre-Processing Tasks that perform low-level TEXT manipulation of the email content. In order for these to be used, Pre-Processing needs to be enabled. For full details of Pre-Processing Tasks, including set-up and example configurations, please see How To Use Pre-Processing Tasks.
Name | Description |
---|---|
Groupwise Addressee | Addresses must be valid SMTP addresses, Groupwise was found to generate massively broken addresses not conformant with: http://docs.oracle.com/javaee/6/api/javax/mail/internet/InternetAddress.html |
Content Type Mapper | Content-Type header values are just invalid to Javamail. Sometimes, there are Javamail supported content types that could be used instead. This task allows the mapping of unsupported Content Types to supported ones. |
Invalid Content Transfer Encoding remover | Content-Type-Encoding values of mime parts are invalid, e.g. UTF-8 (which is a character set, not an encoding method like quoted-printable). Its possible to remove the header entirely in these cases by specifying the content type in the configuration UTF-8 |
Quoted Address Removal | Internet Address have to be correct syntax, this task resolves problems where addresses are quoted, eg: 'user@place.com' which is invalid, or <'user@place.com'> which is also invalid |
Double Route Address Removal | Internet Address have to be correct syntax, this task resolves problems where addresses are routinely supplied in duplicate, eg: <user@place.com> <user@place.com>, which is invalid |
MIME Multipart Boundary Updater | Allows illegal MIME multipart boundaries to be fixed dynamically. |
Trailing Dot Address Removal | Filter the "From", "To" and "Cc" addresses for illegal trailing dot. |