Boundary error-event will only work for:
1) BPMN Error-events thrown in the process
2) BPMNError exception thrown from within the process execution code.
A solution whould be to wrap the email-behaviour Service-task in a try-catch, wrapping the javax.mail-exception in a BPMNError and throwing that instead. Alternatively, you can just create a JavaDelegate which does the error-handling and logging itself, rather than modelling this in the process. The advantage of a JavaDelegate opposed to a ScriptTask is the fact that you can re-use the logic across multiple process-definitions…