Php - Надійно чисте кодування основного повідомлення електронної пошти - Переповнення стека

Я пишу невеликий шматок програмного забезпечення на php, який підключається до скриньки електронної пошти IMAP і зберігає повідомлення, що містяться в ньому, у базі даних MySQL для подальшої обробки та іншої користі.

Я помітив, що під час тестування я отримую деякі дивні символи, що з'являються в тілі повідомлення, коли я намагаюся зберегти тіло повідомлення необробленим. Я використовую imap_fetchbody () для вилучення тіла повідомлення.

Я помітив, що коли я використовую quo_printable_decode () для очищення тіла повідомлення, це допомагає! Однак, проводячи багато досліджень, я також дізнався, що це не завжди допоможе, і що для очищення тіла повідомлення натомість слід використовувати інші методи, такі як utf8_encode () та base64_decode ().

Отже, моє запитання: який найкращий спосіб надійно очистити тіло повідомлення електронної пошти за допомогою php, щоб охопити всі сценарії кодування?

надійно

1 відповідь 1

В наш час "тіло електронної пошти" насправді є деревом окремих частин MIME. Іноді є лише одна з них, напр. текст/звичайна пошта. Іноді існує багаточастинна/альтернативна версія, яка обгортає всередині неї дві "еквівалентні" копії повідомлення, одну як text/plain, а іншу як text/html. Іноді структура набагато складніша, з багатьма рівнями гніздування. Досить часто деякі з цих частин насправді є двійковим вмістом, наприклад зображення, прикріплені ZIP-файли, а що ні.