-
-
Notifications
You must be signed in to change notification settings - Fork 60
Description
Hi, Zaahid! Hope for your advice.
We receive non-standard emails from the same sender.
mail_example.txt as example (Some data has been removed, but this does not affect the main problem).
Email with headers:
Content-Type: multipart/mixed
Content-Transfer-Encoding: base64
The sender uses SAP Web Application Server 7.00, which encodes the entire body of the message in base64 encoding.
According to RFC 1521 such email is not valid
If a Content-Transfer-Encoding header field appears as part of a message header, it applies to the entire body of that message. If a Content-Transfer-Encoding header field appears as part of a body part's headers, it applies only to the body of that body part. If an entity is of type "multipart" or "message", the Content-Transfer-Encoding is not permitted to have any value other than a bit width (e.g., "7bit", "8bit", etc.) or "binary
As a workaround, we now use this construction
before check multipart/mixed and base64 and entire body is encoded in base64
$message = $zBatesonMimeParser->parse($nonStandardMail, false);
$message->removeHeader("Content-Transfer-Encoding");
$message->addRawHeader("Content-Transfer-Encoding", "binary");
$message->setContent(base64_decode($message->getContent()));
$message2 = $zBatesonMimeParser->parse($message->getStream(), false);
Perhaps there are better ways to do this?
Thank you for your attention.