来自附件的文件名通过邮件mime php

时间:2013-02-07 09:23:29

标签: php email mime

我在使用mime mail发送的附件中使用长文件名时遇到问题。

当我使用短名称时,例如:rapport.pdf它可以正常工作。

但是当我开始使用长文件名时,例如:rapport_2013_rapport_2013_rapport_2013_rapport_2013_rapport_2013_.pdf,文件在将文件发送到电子邮件时会获得一个新名称(uniteledled attchment xxxxx.pdf)。

有没有办法解决这个问题?我已经尝试将编码更改为内联或附件。 这是我使用的代码:

 $mime = new Mail_Mime();
 $mime->setHtmlBody($htmlMessage);
 $mime->addAttachment($pdfcontent, 'application/pdf', 'factuur_QW'.$fcnr.'.pdf', false, 'base64');
 $body = $mime->get();
 $hdrs = $mime->headers($headers);
 $mail = &Mail::factory('mail');
 $mail->send($to, $hdrs, $body); 

1 个答案:

答案 0 :(得分:0)

我看到了这篇文章:Is there any limit on the maximum length of filename while sending attachments?

这表明如果文件名被适当编码,您可以拥有更长的文件名。尝试:

import matplotlib.pyplot as plt

weighted_appearances = []
for index, row in df.iterrows():
    weighted_row = [row.ColA]*row.ColA_weights
    weighted_appearances += weighted_row

plt.boxplot(weighted_appearances)
plt.show()

根据指定的mime类型,'。pdf'将添加到附件文件名中。如果字符在Ascii字符集中,则无需使用base64对附件名称进行编码。在这种情况下,替换'= utf-8?B?'用'= utf-8?Q?'。