通过邮件mime php从附件中获取文件名
我在mime邮件发送的附件中使用长文件名时遇到问题 当我使用短名称时,比如:通过邮件mime php从附件中获取文件名,php,email,mime,Php,Email,Mime,我在mime邮件发送的附件中使用长文件名时遇到问题 当我使用短名称时,比如:rapport.pdf它很好用 但是,当我开始使用长文件名时,比如:rapport\u 2013\u rapport\u 2013\u rapport\u 2013\u rapport\u 2013\u.pdf将文件发送到电子邮件时,文件会有一个新名称(不附带附件xxxxx.pdf) 有办法解决这个问题吗?我已经尝试将编码更改为内联或附件。 这是我使用的代码: $mime = new Mail_Mime(); $mi
rapport.pdf
它很好用
但是,当我开始使用长文件名时,比如:rapport\u 2013\u rapport\u 2013\u rapport\u 2013\u rapport\u 2013\u.pdf
将文件发送到电子邮件时,文件会有一个新名称(不附带附件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);
我看到这篇文章: 这表明,如果文件名经过适当编码,则可以使用更长的文件名。尝试:
$mime->addAttachment($pdfcontent, 'application/pdf', 'factuur_QW'.$fcnr.'.pdf', false, 'base64', 'attachment', '', '', '', 'encoded-word', null, '=?utf-8?B' . base64_encode('factuur_QW'.$fcnr') . '?=', null);
根据指定的mime类型,'.pdf'将添加到附件文件名中。如果字符在Ascii字符集中,也不需要使用base64对附件名称进行编码。在这种情况下,将“=utf-8?B”替换为“=utf-8?Q?”。您使用什么发送电子邮件?我们能看到一些代码吗?我刚刚添加了一段代码。我还发现了重音字符的问题。我的打赌是保持文件名不超过64个字符