You could plug in a org.activiti.engine.impl.bpmn.parser.BpmnParseListener (look on forum to see example usage) that implements the parseSendTask() method. Here, you have acces to the parsed ActivityImpl before it gets handed to the engine for execution. You could, for example, get the wrapped Activitybehaviour and replace it by your class, ext rating all fields you need from the original persed ActivitiBehaviour (in your case MailActivityBehavior).
Hope this helps…