php-imap
php-imap copied to clipboard
TNEF support
Hi everyone,
Im using the lib 2.1.8 on Laravel 8.0.2 / PHP 7.4 and an MS exchange server. Im able to connect to the account, count the number of emails in a specific folder, but cannot get the messages. Here's the code and the stack error.
Conf imap :
$oClient = new Client([
'host' => 'Server',
'port' => 993,
'protocol' => 'imap', //might also use imap, [pop3 or nntp (untested)]
'encryption' => 'ssl', // Supported: false, 'ssl', 'tls'
'validate_cert' => true,
'username' => '[email protected]',
'password' => 'password'
]);
'options' => [
'delimiter' => '/',
'fetch_body' => true,
'fetch_flags' => true,
'message_key' => 'list',
'fetch_order' => 'asc',
'open' => [
// 'DISABLE_AUTHENTICATOR' => 'GSSAPI'
],
'decoder' => [
'message' => 'utf-8', // mimeheader
'attachment' => 'utf-8' // mimeheader
]
]
Connect : OK Count messages : OK Get All messages from folder : KO
Code :
$oClient->connect();
$oFolder = $oClient->getFolder('Orange');
$count = $oFolder->query()->all()->count();
$messages = $oFolder->query()->all()->get();
echo "$count";
Error seems to append when fecthing the messages.

Thx, Djey
Hi @DjeyKey , thanks for your well written report. I'm just missing one important thing: how can I reproduce this behavior?
Please try to narrow it down by sending yourself a simple test email and try to fetch just this one.
$count = $oFolder->query()->subject("test")->count();
$messages = $oFolder->query()->subject("test")->get();
echo "$count";
..then try to expand the amount of mails:
$count = $oFolder->query()->all()->limit(5)->count();
$messages = $oFolder->query()->limit(5)->get();
echo "$count";
..until you find the one that fails. If you can identify a single troubling email, please dump the complete (anonymized) message structure $message->getStructure() and post it here or send it to [email protected] if you want to keep it "private".
Best regards,
Thanks for your reply. Research for "troubling" email is done, but i cant get the structure, i still got the same error. Additionnal information about the "troubling" email :
- this is a forwarded message from Outlook Office 2019
- maybe this is a special MIME type : TNEF ?
I just sent you the message for some privacy, this is a ZIP for keeping its original structure. Best regards
After few exchage with Webklex support,
i tried as advised to cahnge the conf param from "imap" to ""legacy-imap" but this protocol dont seems to be effective, because i get a client connection error. Anyway, most of my investigations are coming clother to the TNEF encapsluation from MS excahnge when theres multipart messages and attachments.