繁体   English   中英

通过邮件mime php附件中的文件名

[英]File name from attachment via mail mime php

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

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

但是,当我开始使用诸如rapport_2013_rapport_2013_rapport_2013_rapport_2013_rapport_2013_.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?'。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM