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
PHP Imap错误';从';参数_Php_Email_Imap - Fatal编程技术网

PHP Imap错误';从';参数

PHP Imap错误';从';参数,php,email,imap,Php,Email,Imap,我有一个特定的请求,需要作为imap服务器连接到本地(eml)文件。这在过去已经做过,所以我知道这是可以实现的。我的代码类似于以下代码: <?php // remember original $HOME environment variable so we can set it back once we're done $home_path = getenv('HOME'); // this is needed so we can access local .eml file as m

我有一个特定的请求,需要作为imap服务器连接到本地(eml)文件。这在过去已经做过,所以我知道这是可以实现的。我的代码类似于以下代码:

<?php

// remember original $HOME environment variable so we can set it back once we're done
$home_path = getenv('HOME');

// this is needed so we can access local .eml file as mailbox
putenv("HOME=/var/www/test/"); 

// mailbox.eml is in inside /var/www/test/ which is relative to the imap at the moment
$stream = imap_open('mailbox.eml', '', ''); 

// check the mailbox 
$MC = imap_check($stream);

// Fetch an overview for all messages in INBOX
$result = imap_fetch_overview($stream,"1:{$MC->Nmsgs}",0);

var_dump($result);exit;
有关“发件人”的信息不好。它应该说明发送邮件的地址和电子邮件地址。相反,我得到的是“用户号”-501@test".

我设法弄清楚“501”部分是我的流浪机器中的一个用户名,在这个机器上运行这个脚本。在没有流浪者的其他机器上进行了尝试,但仍然在“发件人”字段中获得了该机器的用户名

如果我连接到真正的imap服务器,我将获得此邮箱消息的正确输出,如下所示:

array(1) {
  [0]=>
  object(stdClass)#2 (15) {
    ["subject"]=>
    string(14) "test test test"
    ["from"]=>
    string(62) "=?UTF-8?B?U3LEkWFuIE1hcmphbm92acSH?= <example@example.com>"
    ["to"]=>
    string(44) "test+example@domain.com"
    ["date"]=>
    string(31) "Thu, 19 Nov 2015 14:50:18 +0100"
    ["message_id"]=>
    string(68) "<CAMuB9mq5LNb33rarBtbViBx7ZdSdbgHWhPBkfRCdN+A20v5wuw@domain.com>"
    ["size"]=>
    int(3148)
    ["uid"]=>
    int(1)
    ["msgno"]=>
    int(1)
    ["recent"]=>
    int(0)
    ["flagged"]=>
    int(0)
    ["answered"]=>
    int(0)
    ["deleted"]=>
    int(0)
    ["seen"]=>
    int(1)
    ["draft"]=>
    int(0)
    ["udate"]=>
    int(1447944622)
  }
}
数组(1){
[0]=>
对象(标准类)#2(15){
[“主题”]=>
字符串(14)“测试”
[“从”]=>
字符串(62)”=?UTF-8?B?U3LEkWFuIE1hcmphbm92acSH?=”
[“至”]=>
串(44)“测试+example@domain.com"
[“日期”]=>
字符串(31)“Thu,2015年11月19日14:50:18+0100”
[“消息id”]=>
字符串(68)”
[“大小”]=>
内部(3148)
[“uid”]=>
int(1)
[“msgno”]=>
int(1)
[“最近”]=>
int(0)
[“已标记”]=>
int(0)
[“已回答”]=>
int(0)
[“已删除”]=>
int(0)
[“看到”]=>
int(1)
[“草稿”]=>
int(0)
[“udate”]=>
国际电话(1447944622)
}
}
其他信息似乎也被“覆盖”

关于什么可能导致imap行为不端以及如何解决这一问题,您有什么想法吗


注意:PHP5.6.13-1+为了回答我自己的问题,如果有人遇到这样的问题:显然,mailbox.eml必须有一个“From”作为第一行。例如,将此行添加到mailbox.eml的顶部我的所有问题:

From MAILER-DAEMON Tue Nov 24 10:29:08 2015
From MAILER-DAEMON Tue Nov 24 10:29:08 2015