| Recommend this page to a friend! |
| PHP MIME Email Message Parser | > | All threads | > | attached Mojibake | > | (Un) Subscribe thread alerts |
| |||||||||||||||
hi Manuel,i need your help.
here is the eml file's subject and attached. the subject can be parsered correctly but the attached is in Mojibake Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: base64 PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv L0VOIj4NCjxIVE1MPjxIRUFEPg0KPE1FVEEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu dD0idGV4dC9odG1sOyBjaGFyc2V0PWdiMjMxMiI+DQo8TUVUQSBjb250ZW50PSJNU0hUTUwgNi4w MC4yOTAwLjM0MjkiIG5hbWU9R0VORVJBVE9SPg0KPFNUWUxFPjwvU1RZTEU+DQo8L0hFQUQ+DQo8 Qk9EWSBiZ0NvbG9yPSNmZmZmZmY+PFNUUk9ORz48RU0+PEZPTlQgDQpjb2xvcj0jZmYwMDAwPrex 83ecedSHjqeIRMasy/mT+tiTPC9GT05UPjwvRU0+PC9TVFJPTkc+DQo8RElWPjxGT05UIHNpemU9 Mj48L0ZPTlQ+Jm5ic3A7PC9ESVY+PC9CT0RZPjwvSFRNTD4NCg== ------=_NextPart_001_0014_01C954B8.2205A240-- ------=_NextPart_000_0013_01C954B8.2205A240 Content-Type: image/gif; name="=?gb2312?B?t7Hzdy5naWY=?=" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="=?gb2312?B?t7Hzdy5naWY=?=" R0lGODlhIAAgAOYAAAAAAAAAGAAMKQAUNQAlRgA1bwgxWghKnAkKDBA5YxBEfRBarRUIABgYIRhK cyEQCCFrrSkpLSkxMTFKazkxMTl/vTmc/z5CP0Z7sUac70pznEqMzkqU3k6p/1JrhFKEvVZUVFal 61p7nFqMxmCy/2OErWOczmlpaGs5HGul1my1/3OUrXOt3nO9/3V1dXWky3uYsXu9/4St3oW67Yae tYfG/oqpx4yYpYy53pTG4pTG95rO/pyttZzB4p/O76C0xqWlpaXe56bW/qje/6nG3q1rMa+wsLG9 zLTl/rV7KbnO171rMb29vcPe8cPx/8a9rcbGx857Mc73/tHS1Nrn7dr3/9zd395zMeDf4+TWxufn 5+r//++ELu+YSu+9hO/u7ve9e/fGkPfOa/j49vzDWP2gNf2vRP3///+UL/+1Mf+1Sv/OaP/We//i lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAEAAFgALAAAAAAgACAAhgAAAAAAGAAMKQAUNQAlRgA1bwgxWghKnAkKDBA5YxBEfRBarRUIABgY IRhKcyEQCCFrrSkpLSkxMTFKazkxMTl/vTmc/z5CP0Z7sUac70pznEqMzkqU3k6p/1JrhFKEvVZU VFal61p7nFqMxmCy/2OErWOczmlpaGs5HGul1my1/3OUrXOt3nO9/3V1dXWky3uYsXu9/4St3oW6 7YaetYfG/oqpx4yYpYy53pTG4pTG95rO/pyttZzB4p/O76C0xqWlpaXe56bW/qje/6nG3q1rMa+w sLG9zLTl/rV7KbnO171rMb29vcPe8cPx/8a9rcbGx857Mc73/tHS1Nrn7dr3/9zd395zMeDf4+TW xufn5+r//++ELu+YSu+9hO/u7ve9e/fGkPfOa/j49vzDWP2gNf2vRP3///+UL/+1Mf+1Sv/OaP/W e//ilAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAf+gFiCg4SFhlpWWkCGjI2CiFaJZ5NfTI6NY5GRY5NjX5Bni5eCY1ORWp1KSkemmlZnRqOCJ51f X1A/nGc/Wr29tpajIGefVj+vk5M/n76wsrRjP0rJ1FLLzaKjPD9b3d7eUkFTtl+esY5WNFTf7FVO SOPkoY4wSltV7N7uTjnkts6GaHB7h6SKwYNVpCBxwtDGmIcPv5wTNIXGFoJIFkrZuBFjRiS5IALE coOIFCEoUy500oQKlSYfP/pQInKiCwdCdujcKQQJFUo2hggdigQHlYdnxkwEMGJHjadQm1CCIWSo 1SEvdI3EEqBGjK9fVXxJSmMHSh9EUqIcYiPZRCz+IBLsIEGXRIiHiHrs8GHlyM6/Pzq9RYChRYfD GaZAstLDyhS/f3XOmDLpLRYAMzpYyBBiimfPjqfYiLyTBSrLJwjU4NAmzBEjUDzHNlKDtE4hbc8E G9TAQ5suXMJQmWJkCpQbMmzvQKLEChQXJwo9YdMFTZkyXla8KPFCh3IhGCYAiOCiUBYxZayTUWMG h22vKmqwOCAAAaMsZNKXIbNeQ22dNbRQVws7VFAAANEZgp9+a6yhhggdqKBCXSRIuMMMC9TXSBZm mHEdGQ5GMAOFErYQww4bHJggI0mUcQUX+6nxAAIO1CChCi0QOAMEA9h3SRTXpVGGGgwIAsAHXsVB UIMQJigAAAiyoMAFGOwVOUgAM9SWQwUDACCLIA2gsEQRVg5ygQE7pODkBV8OcoIEbBqCgAIEeNlm mxRAeScWgQAAOw== ------=_NextPart_000_0013_01C954B8.2205A240-- my output file content: GIF89a � ����������)�5�%F�5o1ZJ� 9cD}Z��!Js! !k�))-)111Jk9119�9��>B?F{�F��Js�J��J��N��Rk�R��VTTV��Z{�Z��`��c��c��iihk9 k��l��s��s��s��uuuu��{��{����ޅ�톞 ������nj����ޔ�������������ƥ������������ޭk1�����̴���{)��׽k1���������ƽ�����{1����������������s1�������������.�Jd����{�Ɛ��k�����X�5�D�����/��1��J��h��{��������������������������������������������������������!� ��X�,���� � ��������)�5�%F�5o1ZJ� 9cD}Z��!Js! !k�))-)111Jk9119�9��>B?F{�F��Js�J��J��N��Rk�R��VTTV��Z{�Z��`��c��c��iihk9 k��l��s��s��s��uuuu��{��{����ޅ�톞 ������nj����ޔ�������������ƥ������������ޭk1�����̴���{)��׽k1���������ƽ�����{1����������������s1�������������.�Jd����{�Ɛ��k�����X�5�D�����/��1��J��h��{�������������������������������������������������������� ��X�����ZVZ@�����V�g�_L��c��c�c_�g���cS�Z�JJG��VgF��'�__P?�g?Z����� g�V?���?�����c?J��R�͢� here is example $test1 = base64_decode("R0lGODlhIAAgAOYAAAAAAAAAGAAMKQAUNQAlRgA1bwgxWghKnAkKDBA5YxBEfRBarRUIABgYIRhK cyEQCCFrrSkpLSkxMTFKazkxMTl/vTmc/z5CP0Z7sUac70pznEqMzkqU3k6p/1JrhFKEvVZUVFal 61p7nFqMxmCy/2OErWOczmlpaGs5HGul1my1/3OUrXOt3nO9/3V1dXWky3uYsXu9/4St3oW67Yae tYfG/oqpx4yYpYy53pTG4pTG95rO/pyttZzB4p/O76C0xqWlpaXe56bW/qje/6nG3q1rMa+wsLG9 zLTl/rV7KbnO171rMb29vcPe8cPx/8a9rcbGx857Mc73/tHS1Nrn7dr3/9zd395zMeDf4+TWxufn 5+r//++ELu+YSu+9hO/u7ve9e/fGkPfOa/j49vzDWP2gNf2vRP3///+UL/+1Mf+1Sv/OaP/We//i lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAEAAFgALAAAAAAgACAAhgAAAAAAGAAMKQAUNQAlRgA1bwgxWghKnAkKDBA5YxBEfRBarRUIABgY IRhKcyEQCCFrrSkpLSkxMTFKazkxMTl/vTmc/z5CP0Z7sUac70pznEqMzkqU3k6p/1JrhFKEvVZU VFal61p7nFqMxmCy/2OErWOczmlpaGs5HGul1my1/3OUrXOt3nO9/3V1dXWky3uYsXu9/4St3oW6 7YaetYfG/oqpx4yYpYy53pTG4pTG95rO/pyttZzB4p/O76C0xqWlpaXe56bW/qje/6nG3q1rMa+w sLG9zLTl/rV7KbnO171rMb29vcPe8cPx/8a9rcbGx857Mc73/tHS1Nrn7dr3/9zd395zMeDf4+TW xufn5+r//++ELu+YSu+9hO/u7ve9e/fGkPfOa/j49vzDWP2gNf2vRP3///+UL/+1Mf+1Sv/OaP/W e//ilAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAf+gFiCg4SFhlpWWkCGjI2CiFaJZ5NfTI6NY5GRY5NjX5Bni5eCY1ORWp1KSkemmlZnRqOCJ51f X1A/nGc/Wr29tpajIGefVj+vk5M/n76wsrRjP0rJ1FLLzaKjPD9b3d7eUkFTtl+esY5WNFTf7FVO SOPkoY4wSltV7N7uTjnkts6GaHB7h6SKwYNVpCBxwtDGmIcPv5wTNIXGFoJIFkrZuBFjRiS5IALE coOIFCEoUy500oQKlSYfP/pQInKiCwdCdujcKQQJFUo2hggdigQHlYdnxkwEMGJHjadQm1CCIWSo 1SEvdI3EEqBGjK9fVXxJSmMHSh9EUqIcYiPZRCz+IBLsIEGXRIiHiHrs8GHlyM6/Pzq9RYChRYfD GaZAstLDyhS/f3XOmDLpLRYAMzpYyBBiimfPjqfYiLyTBSrLJwjU4NAmzBEjUDzHNlKDtE4hbc8E G9TAQ5suXMJQmWJkCpQbMmzvQKLEChQXJwo9YdMFTZkyXla8KPFCh3IhGCYAiOCiUBYxZayTUWMG h22vKmqwOCAAAaMsZNKXIbNeQ22dNbRQVws7VFAAANEZgp9+a6yhhggdqKBCXSRIuMMMC9TXSBZm mHEdGQ5GMAOFErYQww4bHJggI0mUcQUX+6nxAAIO1CChCi0QOAMEA9h3SRTXpVGGGgwIAsAHXsVB UIMQJigAAAiyoMAFGOwVOUgAM9SWQwUDACCLIA2gsEQRVg5ygQE7pODkBV8OcoIEbBqCgAIEeNlm mxRAeScWgQAAOw=="); echo $test1;
I am not sure what is the problem. Can you explain better what you want to do and you are not achieving?
it is a chinese eml file with attachment in it,i used your scripts to parse it ,all message is right except the attachment content,it's in Mojibake.(in fact it can parse the attached ,only the content is not chinese words)
look i parse the attached with base64_decode ,the result is not original words $test1 = base64_decode("R0lGODlhIAAgAOYAAAAAAAAAGAAMKQAUNQAlRgA1bwgxWghKnAkKDBA5YxBEfRBarRUIABgYIRhK cyEQCCFrrSkpLSkxMTFKazkxMTl/vTmc/z5CP0Z7sUac70pznEqMzkqU3k6p/1JrhFKEvVZUVFal 61p7nFqMxmCy/2OErWOczmlpaGs5HGul1my1/3OUrXOt3nO9/3V1dXWky3uYsXu9/4St3oW67Yae tYfG/oqpx4yYpYy53pTG4pTG95rO/pyttZzB4p/O76C0xqWlpaXe56bW/qje/6nG3q1rMa+wsLG9 zLTl/rV7KbnO171rMb29vcPe8cPx/8a9rcbGx857Mc73/tHS1Nrn7dr3/9zd395zMeDf4+TWxufn 5+r//++ELu+YSu+9hO/u7ve9e/fGkPfOa/j49vzDWP2gNf2vRP3///+UL/+1Mf+1Sv/OaP/We//i lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAEAAFgALAAAAAAgACAAhgAAAAAAGAAMKQAUNQAlRgA1bwgxWghKnAkKDBA5YxBEfRBarRUIABgY IRhKcyEQCCFrrSkpLSkxMTFKazkxMTl/vTmc/z5CP0Z7sUac70pznEqMzkqU3k6p/1JrhFKEvVZU VFal61p7nFqMxmCy/2OErWOczmlpaGs5HGul1my1/3OUrXOt3nO9/3V1dXWky3uYsXu9/4St3oW6 7YaetYfG/oqpx4yYpYy53pTG4pTG95rO/pyttZzB4p/O76C0xqWlpaXe56bW/qje/6nG3q1rMa+w sLG9zLTl/rV7KbnO171rMb29vcPe8cPx/8a9rcbGx857Mc73/tHS1Nrn7dr3/9zd395zMeDf4+TW xufn5+r//++ELu+YSu+9hO/u7ve9e/fGkPfOa/j49vzDWP2gNf2vRP3///+UL/+1Mf+1Sv/OaP/W e//ilAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAf+gFiCg4SFhlpWWkCGjI2CiFaJZ5NfTI6NY5GRY5NjX5Bni5eCY1ORWp1KSkemmlZnRqOCJ51f X1A/nGc/Wr29tpajIGefVj+vk5M/n76wsrRjP0rJ1FLLzaKjPD9b3d7eUkFTtl+esY5WNFTf7FVO SOPkoY4wSltV7N7uTjnkts6GaHB7h6SKwYNVpCBxwtDGmIcPv5wTNIXGFoJIFkrZuBFjRiS5IALE coOIFCEoUy500oQKlSYfP/pQInKiCwdCdujcKQQJFUo2hggdigQHlYdnxkwEMGJHjadQm1CCIWSo 1SEvdI3EEqBGjK9fVXxJSmMHSh9EUqIcYiPZRCz+IBLsIEGXRIiHiHrs8GHlyM6/Pzq9RYChRYfD GaZAstLDyhS/f3XOmDLpLRYAMzpYyBBiimfPjqfYiLyTBSrLJwjU4NAmzBEjUDzHNlKDtE4hbc8E G9TAQ5suXMJQmWJkCpQbMmzvQKLEChQXJwo9YdMFTZkyXla8KPFCh3IhGCYAiOCiUBYxZayTUWMG h22vKmqwOCAAAaMsZNKXIbNeQ22dNbRQVws7VFAAANEZgp9+a6yhhggdqKBCXSRIuMMMC9TXSBZm mHEdGQ5GMAOFErYQww4bHJggI0mUcQUX+6nxAAIO1CChCi0QOAMEA9h3SRTXpVGGGgwIAsAHXsVB UIMQJigAAAiyoMAFGOwVOUgAM9SWQwUDACCLIA2gsEQRVg5ygQE7pODkBV8OcoIEbBqCgAIEeNlm mxRAeScWgQAAOw=="); echo $test1;
I am still not quite sure what you mean.
Anyway, the class just parses and extracts the data and the information about the original character set that was used. It is up to you to take the parsed data and show it somehow that it uses the right character set so any text appears with the right idiom.
my attachment original character set is chinese ,but why it parse wrong characters??????? subject is chinese can be parse correctly
here is the entire eml file Received: (qmail 1296 invoked by uid 0); 2 Dec 2008 11:56:50 -0000 Received: from unknown (HELO DannyLiu) ([email protected]@121.11.245.83) by smartdotweb.hk with SMTP; 2 Dec 2008 11:56:50 -0000 Message-ID: <001901c95475$191e4210$2160a8c0@DannyLiu> From: <[email protected]> To: <[email protected]> Subject: =?gb2312?B?t7Hzd5x51IeOp4hExqw=?= Date: Tue, 2 Dec 2008 19:56:57 +0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0013_01C954B8.2205A240" X-Priority: 3 X-Msmail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.3138 X-Mimeole: Produced By Microsoft MimeOLE V6.00.2900.3350 This is a multi-part message in MIME format. ------=_NextPart_000_0013_01C954B8.2205A240 Content-Type: multipart/alternative; boundary="----=_NextPart_001_0014_01C954B8.2205A240" ------=_NextPart_001_0014_01C954B8.2205A240 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 t7Hzd5x51IeOp4hExqzL+ZP62JMNCg== ------=_NextPart_001_0014_01C954B8.2205A240 Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: base64 PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv L0VOIj4NCjxIVE1MPjxIRUFEPg0KPE1FVEEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu dD0idGV4dC9odG1sOyBjaGFyc2V0PWdiMjMxMiI+DQo8TUVUQSBjb250ZW50PSJNU0hUTUwgNi4w MC4yOTAwLjM0MjkiIG5hbWU9R0VORVJBVE9SPg0KPFNUWUxFPjwvU1RZTEU+DQo8L0hFQUQ+DQo8 Qk9EWSBiZ0NvbG9yPSNmZmZmZmY+PFNUUk9ORz48RU0+PEZPTlQgDQpjb2xvcj0jZmYwMDAwPrex 83ecedSHjqeIRMasy/mT+tiTPC9GT05UPjwvRU0+PC9TVFJPTkc+DQo8RElWPjxGT05UIHNpemU9 Mj48L0ZPTlQ+Jm5ic3A7PC9ESVY+PC9CT0RZPjwvSFRNTD4NCg== ------=_NextPart_001_0014_01C954B8.2205A240-- ------=_NextPart_000_0013_01C954B8.2205A240 Content-Type: image/gif; name="=?gb2312?B?t7Hzdy5naWY=?=" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="=?gb2312?B?t7Hzdy5naWY=?=" R0lGODlhIAAgAOYAAAAAAAAAGAAMKQAUNQAlRgA1bwgxWghKnAkKDBA5YxBEfRBarRUIABgYIRhK cyEQCCFrrSkpLSkxMTFKazkxMTl/vTmc/z5CP0Z7sUac70pznEqMzkqU3k6p/1JrhFKEvVZUVFal 61p7nFqMxmCy/2OErWOczmlpaGs5HGul1my1/3OUrXOt3nO9/3V1dXWky3uYsXu9/4St3oW67Yae tYfG/oqpx4yYpYy53pTG4pTG95rO/pyttZzB4p/O76C0xqWlpaXe56bW/qje/6nG3q1rMa+wsLG9 zLTl/rV7KbnO171rMb29vcPe8cPx/8a9rcbGx857Mc73/tHS1Nrn7dr3/9zd395zMeDf4+TWxufn 5+r//++ELu+YSu+9hO/u7ve9e/fGkPfOa/j49vzDWP2gNf2vRP3///+UL/+1Mf+1Sv/OaP/We//i lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAEAAFgALAAAAAAgACAAhgAAAAAAGAAMKQAUNQAlRgA1bwgxWghKnAkKDBA5YxBEfRBarRUIABgY IRhKcyEQCCFrrSkpLSkxMTFKazkxMTl/vTmc/z5CP0Z7sUac70pznEqMzkqU3k6p/1JrhFKEvVZU VFal61p7nFqMxmCy/2OErWOczmlpaGs5HGul1my1/3OUrXOt3nO9/3V1dXWky3uYsXu9/4St3oW6 7YaetYfG/oqpx4yYpYy53pTG4pTG95rO/pyttZzB4p/O76C0xqWlpaXe56bW/qje/6nG3q1rMa+w sLG9zLTl/rV7KbnO171rMb29vcPe8cPx/8a9rcbGx857Mc73/tHS1Nrn7dr3/9zd395zMeDf4+TW xufn5+r//++ELu+YSu+9hO/u7ve9e/fGkPfOa/j49vzDWP2gNf2vRP3///+UL/+1Mf+1Sv/OaP/W e//ilAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAf+gFiCg4SFhlpWWkCGjI2CiFaJZ5NfTI6NY5GRY5NjX5Bni5eCY1ORWp1KSkemmlZnRqOCJ51f X1A/nGc/Wr29tpajIGefVj+vk5M/n76wsrRjP0rJ1FLLzaKjPD9b3d7eUkFTtl+esY5WNFTf7FVO SOPkoY4wSltV7N7uTjnkts6GaHB7h6SKwYNVpCBxwtDGmIcPv5wTNIXGFoJIFkrZuBFjRiS5IALE coOIFCEoUy500oQKlSYfP/pQInKiCwdCdujcKQQJFUo2hggdigQHlYdnxkwEMGJHjadQm1CCIWSo 1SEvdI3EEqBGjK9fVXxJSmMHSh9EUqIcYiPZRCz+IBLsIEGXRIiHiHrs8GHlyM6/Pzq9RYChRYfD GaZAstLDyhS/f3XOmDLpLRYAMzpYyBBiimfPjqfYiLyTBSrLJwjU4NAmzBEjUDzHNlKDtE4hbc8E G9TAQ5suXMJQmWJkCpQbMmzvQKLEChQXJwo9YdMFTZkyXla8KPFCh3IhGCYAiOCiUBYxZayTUWMG h22vKmqwOCAAAaMsZNKXIbNeQ22dNbRQVws7VFAAANEZgp9+a6yhhggdqKBCXSRIuMMMC9TXSBZm mHEdGQ5GMAOFErYQww4bHJggI0mUcQUX+6nxAAIO1CChCi0QOAMEA9h3SRTXpVGGGgwIAsAHXsVB UIMQJigAAAiyoMAFGOwVOUgAM9SWQwUDACCLIA2gsEQRVg5ygQE7pODkBV8OcoIEbBqCgAIEeNlm mxRAeScWgQAAOw== ------=_NextPart_000_0013_01C954B8.2205A240-- thanks a lot
hi Manuel,i found what my mistake finally,cause the parse file have no suffix and no the orginal file name .so i open it with editplus ,saw mess words.
i only need to parse the attached with the orginal file name ,all mistakes are over. but how can i extracts attached with original file name ? some guys told modify here $path = (strlen($parameters['SaveBody']) ? ($parameters['SaveBody'].(strcmp($parameters['SaveBody'][strlen($parameters['SaveBody'])-1], $directory_separator) ? $directory_separator : '')) : '').strval($this->body_part_number); ------------->strval($this->body_part_number)------>this->$filename but some errors occurs here,maybe the "this->$filename" is undefined
The class extracts the original file name to an entry of the decoded array named FileName .
|
info at phpclasses dot org.
