Письмо, переданное в Mail_mimeDecode () из запроса MySQL, лишено символов для вложений - PullRequest
0 голосов
/ 08 июня 2011

У нас есть база данных с сохраненными электронными письмами в формате mbox, вложениями в их родном формате base64 в формате почтового ящика. Мы можем получить и получить доступ / проанализировать всю информацию ... за исключением вложений. Короче говоря, я могу зайти в MySQL и на самом деле увидеть данные вложения base64_encoded, но по какой-то причине структура Mail_mimeDecode () отображает часть вложения следующим образом:

[1] => stdClass Object
(
    [headers] => Array
    (
        [content-type] => image/gif; name="image.gif"
        [content-id] => <3243498760_6337281>
        [content-transfer-encoding] => base64
    )

    [ctype_primary] => image
    [ctype_secondary] => gif
    [ctype_parameters] => Array
    (
        [name] => image.gif
    )

    [body] => GIF89ahôÐÐÐðððÙÙ@àààòòÀ   ```000ßß`   PP
)

Есть мысли? Может быть, я так его храню, но если бы это было правдой, я бы не смог увидеть реальные данные base64 при редактировании строки в phpMyAdmin. По этой причине я подозреваю, что что-то еще происходит.

Дополнительная информация

  1. Я установил параметры сортировки: utf8_bin, поэтому не учитывает регистр
  2. Я установил тип столбца для сохраненного сообщения в длинном тексте, так что места достаточно хранить большинство сообщений

Обновленная информация

Добавление флагов, предложенных в функции decode (), привело к получению строки base64, но это только часть строки. В качестве теста я попытался загрузить точно такое же сообщение из файла с именем «test.mbox», в отличие от MySQL. Загрузка через файл работала отлично и показала мне все, но когда я делаю это через MySQL, я вижу только это. Он как бы обрезает его и показывает только одно вложение (в этом сообщении их два).

[1] => stdClass Object
(
    [headers] => Array
    (
        [content-type] => image/gif; name="image.gif"
        [content-id] => <3243498760_6337281>
        [content-transfer-encoding] => base64
    )

    [ctype_primary] => image
    [ctype_secondary] => gif
    [ctype_parameters] => Array
    (
        [name] => image.gif
    )

    [body] => R0lGODlhaAATAPQAANDQ0PDw8BAQENnZQODg4PLywCAgIGBgYDAwMN/fYKCgoJCQkFBQU
)

... в действительности это должно выглядеть следующим образом (из теста "test.box", который я провел):

[1] => stdClass Object
(
    [headers] => Array
    (
        [content-type] => image/gif; name="image.gif"
        [content-id] => <3243498760_6337281>
        [content-transfer-encoding] => base64
    )

    [ctype_primary] => image
    [ctype_secondary] => gif
    [ctype_parameters] => Array
    (
        [name] => image.gif
    )

    [body] => R0lGODZhaAATAPQAANDQ0PDw8BAQENnZQODg4PLywCAgIGBgYDAwMN/fYKCgoJCQkFBQUHBw
cObmgM/PEPz88LCwsPn54ZzsoPb20O/vsICAgEBAQMDAwMzMAAAAAP///wAAAAAAAAAAAAAA
ACH/C01TT0ZGSUNFOS4wGAZAAAxtc09QTVNPRkZJQ0U5LjAgJPn1cgAh/wtNU09GRklDRTku
MBgAAAAMY21QUEpDbXAwNzEyZAAAA0gAc7wALAAAAABoABMAAAX/4CaOZGmeJIYRKElgQCvP
Y6DSeC5jmnbRl55uKLL0MMQkjucjWSyKUlCTegaUJqMGie2amL9RLzxqXMibKde70a7ZXjBp
DDzC2/ahpMDv+wsSJgAqhDcjchsqPZgqMRuDXC8IPQuGNiskkCWFGAd5IpCEjiQOGaanqBkD
JlM9rggsiXQbrrVhU0W1rkhMFiRTjgACursiAZPEBxs2ACwJqamrUsQ9DCKI1LdCeMS8Pb4j
aiIG1HmtxDEWAmHPqQ+m0iQRT/QMrtezCloGT1y4jxbIaThgYcGVXr/sMOFHDxkXV/TU2SEA
YFQ7VRVKqZqxoBa+JmJAhtsmQtyhbwm3/8gSye3htgCtYplIMKDABgjvNqIIYM/jSjSzRlIR
+gYh0Z9O8tzDMKxHFBoadQoS6BORiKZlSab5tBJcVpVWW16l5ErAmxY4T8Uj0bGH2XtIQ6LZ
OvRrUZSgmnoTSUCgS1tXcExAtVaEpzFX4IbFSjflXQ3g2iqcFaGpSlq1vOa4WBgAxJBDF7Ns
fPQkZJ669v5okHqsBrNK2hVeSI/1NtGQoXwlcZiBlZUIqOpdKQDZa6U9CEa0EJjGs9nlbmOl
CvKfCAWtmZTFYNKyUzeGo5+VQdOEcV1hmFgbAYCqtroibNvx7OrCFWDXm15IlyfA4W5DUHBC
KIWkgEFz7KkQyxcLo9TQyAgvwAChhJnIdEkJlxTS4AYhAAA7
)

1 Ответ

1 голос
/ 08 июня 2011

Сюрприз! Mail_mimeDecode на самом деле, я не решаюсь сказать, декодирует вложение.

КСТАТИ: длинный текст, содержащий большинство сообщений электронной почты - преуменьшение, я надеюсь, что это 4 ГБ, не хотелось бы получать почту больше, чем это:)

...