Stop Emails from being Filtered due to Local address contains illegal character

Scenario

Sometimes, mail will be dropped as the email contains illegal characters.  JEMH Audit Screen would show something like:

Audit Screen results

Audit event details Field Value Help Processed OK: N Rejected: Process Outcome: forward Hints: Can Handle: N Do Delete: Y Email Subject: some topic Message Size: 331.8 Kb Signed: Issue Key: Created: Updated: Commented: Processor Selected: Exception: Failed to send the forward mail: Local address contains illegal character AddressException: Local address contains illegal character: javax.mail.internet.AddressException: Local address contains illegal character in string ``NUVI: "; \"ABC DEF\"" <ABC.DEF@place.com'' at javax.mail.internet.InternetAddress.checkAddress(InternetAddress.java:1216) at javax.mail.internet.InternetAddress.parse(InternetAddress.java:1091) at javax.mail.internet.InternetAddress.parseHeader(InternetAddress.java:658) at javax.mail.internet.MimeMessage.getAddressHeader(MimeMessage.java:702) at javax.mail.internet.MimeMessage.getRecipients(MimeMessage.java:534) at com.javahollic.jira.emh.service.DefaultJEMHMailManager.updateContextForMessage(DefaultJEMHMailManager.java:1478) at com.javahollic.jira.emh.service.DefaultJEMHMailManager.sendForwardEmail(DefaultJEMHMailManager.java:582) at com.javahollic.jira.emh.service.EnterpriseMessageHandlerImpl.sendForwardMail(EnterpriseMessageHandlerImpl.java:695) at com.javahollic.jira.emh.service.EnterpriseMessageHandlerImpl.updateAuditEvent(EnterpriseMessageHandlerImpl.java:532) at com.javahollic.jira.emh.service.EnterpriseMessageHandlerImpl.handleMessage(EnterpriseMessageHandlerImpl.java:259) at com.javahollic.jira.emh.service.EnterpriseMessageHandlerProxy.handleMessage(EnterpriseMessageHandlerProxy.java:45) at com.atlassian.jira.service.services.mail.MailFetcherService$1.process(MailFetcherService.java:368) at com.atlassian.jira.service.services.mail.MailFetcherService$MessageProviderImpl.getAndProcessMail(MailFetcherService.java:271) at com.atlassian.jira.service.services.mail.MailFetcherService.runImpl(MailFetcherService.java:356)

Why?

JIRA uses a library called JavaMail that strictly interprets Internet standards such as (RFC 2045RFC 2046, and RFC 2047). The IMAP, SMTP, and POP3 protocols use MimeMessages.  Whilst being strict, the JavaMail API specification requires support for behaviour changing properties, which must be set in the System properties. The properties are always set as strings;

Solution

A possible workaround to allow these illegal characters 'in' is to set a system property in the java launch script:

 

Mail Property

Notes

Related Pages

Mail Property

Notes

Related Pages

-Dmail.mime.address.strict

Set to false to disable strict mail addresses

Oracle API Docs



Consequences

 As yet unknown.  Potential for non-standard characters to cause storage problems within JEMH is a possibility for SQLServer and Mysql depending on characters involved.