mime_parser.php无法解码带附件的电子邮件

时间:2015-04-23 08:45:19

标签: php email pipe attachment

我有一个脚本,每当收到邮件时,都会使用cpanel管道来执行php文件。我的问题是每当我发送带附件的电子邮件时; mime_parser.php库也没有解码该信息。这是我的代码:

#!/usr/bin/php -q
<?php
  require_once('inc/engage.php');

  // Create socket
  $sock = fopen("php://stdin", 'r');
  $email = '';
  while(!feof($sock)){
   $email .= fread($sock, 1024);
  }

  fclose($sock);

  require_once('libraries/rfc822_addresses.php');
  require_once('libraries/mime_parser.php');

  $mime = new mime_parser_class;
  $mime->ignore_syntax_errors = 1;
  $parameters = array('Data' => $email);

  $mime->Decode($parameters, $decoded);

  $DB->query("INSERT INTO email_accounts_mail (`message`) VALUES('".serialize($decoded)."')");
?>

rfc822_addresses.php:https://raw.githubusercontent.com/suhastech/pushmail/master/class/rfc822_addresses.php

mime_parser.php:https://raw.githubusercontent.com/ryancramerdesign/EmailImage/master/pop3_classes/mime_parser.php

我希望电子邮件解码包含和不包含附件的邮件。现在它解码它没有附件;但不是......我错过了什么?

1 个答案:

答案 0 :(得分:0)

我自己想通了。通过将数据保存在tmp文件夹中并在使用后删除它,我可以检索附件存储的所有数据。这是通过在parameters数组中添加带有指定文件夹(我的是tmp)的SaveBody属性,然后创建文件夹来完成的。在我完成文件夹中的内容后,我删除了所有文件以节省空间。 : - )