Php 无法从MIME电子邮件将附件写入磁盘
我正在使用解析原始电子邮件Php 无法从MIME电子邮件将附件写入磁盘,php,mime,Php,Mime,我正在使用解析原始电子邮件 use ZBateson\MailMimeParser\Message; $message = Message::from($_POST['rawEmail']); foreach ($message->getAllAttachmentParts() as $ind => $part) { $filename = $part->getHeaderParameter( 'Content-Type', 'nam
use ZBateson\MailMimeParser\Message;
$message = Message::from($_POST['rawEmail']);
foreach ($message->getAllAttachmentParts() as $ind => $part) {
$filename = $part->getHeaderParameter(
'Content-Type',
'name',
$part->getHeaderParameter(
'Content-Disposition',
'filename',
'__unknown_file_name_' . $ind
)
);
file_put_contents($filename, $part->getContent());
}
但它只将部分附件数据写入文件,而不是全部。这在我的本地主机上有效,但在我的服务器(bluehost共享主机)上无效
我查看了图书馆网站上的示例(上面链接),并尝试了除file\u put\u contents($filename,$part->getContent())之外的许多其他方法来编写文件代码>。例如:
$out = fopen($filename, 'w+');
$str = $part->getBinaryContentResourceHandle();
$contents = stream_get_contents($str);
fwrite($out, $contents);
fclose($str);
fclose($out);
及
及
但是没有人会将所有数据写入服务器上的文件。php mailparse扩展没有也不能安装在服务器上(因为它是一个共享主机),但如果它完成了任务,我愿意使用其他库/策略。感谢您的帮助!提前谢谢
$out = fopen($filename, 'w+');
$str = $part->getBinaryContentResourceHandle();
stream_copy_to_stream($str, $out);
fclose($str);
fclose($out);
$stream = $part->getContentStream();
$part->saveContent($filename);