Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过邮件mime php从附件中获取文件名_Php_Email_Mime - Fatal编程技术网

通过邮件mime php从附件中获取文件名

通过邮件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

我在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();
 $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个字符