如何使用php中的imap_headers()分别获取电子邮件,主题和名称?

时间:2016-08-01 11:28:54

标签: php email

我试图从电子邮件帐户中提取电子邮件地址。以下脚本对我来说很好。

$mbox = imap_open("{mail.b******n.com:143/novalidate-cert}", "myEmail@b******n.com", "myPassWord");
$headers = imap_headers($mbox);
print_r($headers);
if ($headers == false) {
    echo "Call failed<br />\n";
} else {
    foreach ($headers as $val) {
        echo $val . "<br />\n";
    }
}
imap_close($mbox);

以上代码是返回日期,电子邮件地址(if no name)和主题。

示例: [1118] => 1119)13-May-2016 Facebook You have more friends on (16765 chars)

[1192] =>       1193)25-May-2016 John  Re: B****c Website Feedba (27152 chars)

[1224] =>       1225)30-May-2016 k****n@b***n.c DSR is not submitted prop (83005 chars)

表示如果电子邮件没有From: Name,则返回电子邮件的上述代码。那么有没有办法只获取电子邮件地址?如果有人指导我这件事,我想表示感谢。谢谢

1 个答案:

答案 0 :(得分:1)

您可能希望使用imap_fetch_overview获取消息信息:

$MC = imap_check($mbox);

$result = imap_fetch_overview($mbox,"1:{$MC->Nmsgs}",0);
foreach ($result as $overview) {
    echo "#{$overview->msgno} ({$overview->date}) - From: {$overview->from}
    {$overview->subject}\n";
}
imap_close($mbox);