使用PHP解析用base64 utf8编码的多部分电子邮件

时间:2015-02-18 05:57:44

标签: php utf-8 base64 email-parsing

我有一个我要解码的多部分消息(见下文)。

我能够使用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 个答案:

答案 0 :(得分:1)

有一个名为mailparse的PHP模块可以帮助您完成繁重的工作。

最重要的是,请查看this wrapper,这样可以更轻松地访问库的功能。

我们在mailparser.io的堆栈中使用php模块,它非常可靠。

答案 1 :(得分:0)

我发现这个库可以完成我想要的大部分工作(我做了一些小的自定义)。

https://github.com/CaTzil/emailParser