Details
-
Bug
-
Resolution: Fixed
-
Medium
-
3.13
-
3.13
-
Description
If you have 2 mail handlers setup to check a single mailbox, with catchmail parameters such as this:
- project=HLP, issuetype=3, catchemail=jira@example.com, createusers=true, notifyusers=false, ccassignee=false
- project=HLP, issuetype=3, catchemail=geeks@example.com, createusers=true, notifyusers=false, ccassignee=false, stripquotes=true
Then there's a bug if the mailhandler that doesn't match a mail's TO address runs first. It will delete the message from the mailbox, rather than keeping it, such that the other mailhandler can pick it up.
This was introduced in 3.13, by the fingerprint checking code to prevent mail loops.
The default behaviour of the fingerPrintCheck seems to be to set the deleteMail flag to true (even if the message doesn't contain a fingerprint yet). We either need to change this default to false, or set the deleteMail flag to false in the special check for the catchEmail property (see TODO):
// if the recipient is specified, check it is present in the message and reject if not if ((catchEmail != null) && !MailUtils.hasRecipient(catchEmail, message)) { final Address[] addresses = message.getAllRecipients(); logCantHandleRecipients(addresses); //TODO: ADD THIS deleteMail = false; return false; }
Attachments
Issue Links
- duplicates
-
JRASERVER-15582 Mail Finger Print defaults to "delete mail" even if there are no fingers prints.
- Closed
- is duplicated by
-
JRASERVER-15771 Problem in logic when using multiple mail services "create issue"
- Closed