Разбор электронных писем, состоящих из нескольких частей, закодированных в base64 utf8 с использованием PHP

У меня есть многочастное сообщение, которое я хочу декодировать (см. Ниже).

Я могу использовать PHP base64_decode функция для декодирования обычных писем, но она не будет работать для писем, состоящих из нескольких частей.

Кто-нибудь знает, как это сделать, или знает о доступных скриптах?

    --_000_FBA91459E616EF4B8C1CCF54B389A283030E5EMX105CL01corpemcc_
    Content-Type: text/plain; charset="utf-8"
    Content-Transfer-Encoding: base64

    SGVsbG8sIEkgY2Fu4oCZdCBzZWVtIHRvIGdldCB0aGUgbGluayB0byB3b3JrIGFmZmVjdGl2ZWx5
    IHRvIGVudGVyIGluIHRoZSBuYW1lcyBvZiBwZW9wbGUgdG8gc2VuZCB0aGUgc3VydmV5IHRvb+KA
    pml0IHdvbuKAmXQgbGV0IG1lIGVudGVyIHRoZSBuYW1lcy4gQmUgZ3JlYXQgaWYgeW91IGNvdWxk
    IGhlbHAgb3Igc2hvdWxkIEkganVzdCB3YWl0IGEgbGl0dGxlIHdoaWxlIHRvIGdhaW4gdGhlIGFj
    Y2Vzcz8NCg0KUmVnYXJkcw0... etc

    --_000_FBA91459E616EF4B8C1CCF54B389A283030E5EMX105CL01corpemcc_
    Content-Type: text/html; charset="utf-8"
    Content-Transfer-Encoding: base64

    PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
    bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
    YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
    cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
    VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh... etc
--_000_FBA91459E616EF4B8C1CCF54B389A283030E5EMX105CL01corpemcc_--

2 ответа

Есть PHP-модуль под названием mailparse, который может сделать тяжелую работу за вас.

Кроме того, посмотрите на эту оболочку, которая облегчит доступ к функциям библиотеки.

Мы используем модуль php в нашем стеке на http://mailparser.io/, и он работает очень надежно.

Я нашел эту библиотеку, которая делает большую часть того, что я хочу (я сделал несколько небольших настроек).

https://github.com/CaTzil/emailParser

Другие вопросы по тегам