php-imap icon indicating copy to clipboard operation
php-imap copied to clipboard

TNEF support

Open DjeyKey opened this issue 5 years ago • 3 comments

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.

Capture d’écran 2020-10-08 095712

Thx, Djey

DjeyKey avatar Oct 08 '20 08:10 DjeyKey

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,

Webklex avatar Oct 08 '20 08:10 Webklex

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

DjeyKey avatar Oct 08 '20 10:10 DjeyKey

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.

DjeyKey avatar Oct 12 '20 11:10 DjeyKey