Mailgun随机重命名附件

时间:2019-03-11 18:19:18

标签: php character-encoding mailgun

我正在使用mailgun-php BatchMessage通过Mailgun发送邮件。

我当前正在发送一封电子邮件,该电子邮件应随附三个PDF。在这三个文件中,一个文件名仅由ASCII字母(当然还有扩展名前的点)组成,没有空格或其他任何内容。其他两个名称中包含空格和非ASCII(但仍为ISO-8859-1)字母。

我的Mailgun仪表板中的Mailgun日志正确显示了所有三个文件名;它们显示如下(摘录,并带有虚拟但可比的文件名):

"message": {
    "attachments": [
        {
            "size": 64977,
            "content-type": "application/pdf",
            "filename": "SimpleName.pdf"
        },
        {
            "size": 194915,
            "content-type": "application/pdf",
            "filename": "Encl. I. Möre complæx name.pdf"
        },
        {
            "size": 105596,
            "content-type": "application/pdf",
            "filename": "Encl. II. Almost as complæx name.pdf"
        }
    ]
}

但是在实际发送电子邮件时,两个带有“复杂”名称的附件已被重命名;实际电子邮件中的三个附件最终为:

SimpleName.pdf
Encl. I. Moere complaex name .pdf.pdf
Encl. II. Almost as complaex name .pdf

尽管ö和æ都转换为ASCII解决方法这一事实也许并不完全令人惊讶,尽管这有点令人讨厌(如今哪些电子邮件客户端不支持ISO-8859-1?)–但实际上是什么呢?让我感到困惑的是,如何在两个“复杂”附件中的扩展名之前添加一个空格,更是如此,如何在一个文件而不是另一个文件中将扩展名加倍

每当我尝试摆弄文件名时,似乎都会发生一些新的有趣的事情。例如,我只是将最后一个的名称更改为Encl. II. Almosþ as complæx name.pdf(也就是说,我更改了实际文件的名称以及Mailgun使用的 filename 属性),这一次,它最终在实际的电子邮件中被称为Encl. II. Almost as compl aex name.pdf,扩展名前没有空格,但是在溶解的æ连字符之前突然出现了一个空格。

我在Mailgun的文档中或mailgun-php Github页面的任何地方都找不到类似这样的行为(但是,由于我的Mailgun仪表板日志中的文件名正确,所以我不认为这是PHP库的错误)。

哪些原因导致这些不可预测的文件名更改?

0 个答案:

没有答案