从MySQL查询传递到Mail_mimeDecode()的电子邮件在附件中使用了错误的字符


Email passed to Mail_mimeDecode() from MySQL query has goofed up characters for attachments

我们有一个数据库,其中存储了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
)

有什么想法吗?也许这是我存储它的方式,但如果这是真的,那么在phpMyAdmin中编辑一行时,我将无法看到实际的base64数据。正是因为这个原因,我怀疑发生了其他事情。

附加信息

  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
)

惊喜!Mail_mimeDecode实际上,嗯,我不太愿意说,解码附件

BTW:长文本保存大多数电子邮件是一种轻描淡写的说法,我希望是4GB,我不想收到比这个更大的邮件:)