IMAP - InboundEmail Message (id:XXX) has no body caused by DKIM?

I have configured AOP, workflow & a custom hook to process inbound email from a call centre - creating a case, parsing the email into the relevant fields & notifying a group via an email template.
All works fine with my test emails, which are just copies of a call centre message with some of the details changed.
However, when a ‘real’ message is received from the call centre the parsing fails and only a blank template is sent, because the email body text is not saved to the database (although subject & name, including the firs line of the body are). Investigating the log shows:

[DEBUG] IMAP wrapper called: ImapHandler::fetchBody([123,"",1])
[DEBUG] IMAP wrapper return: ImapHandler::fetchBody(…) => “full message details here”
[DEBUG] InboundEmail Message (id:XXXX) has no body

Where is says “full message details here” above, the emails that fail seem to have a DKIM reference and key embedded after the sender & recipient info but before the email body.
I can’t really make enough sense of the IMAP routines to understand what’s going on.
Could anyone offer any clues on how to isolate this issue?