Php 从imap头中检索电子邮件地址

Php 从imap头中检索电子邮件地址,php,regex,header,preg-match,imap,Php,Regex,Header,Preg Match,Imap,我正在使用php imap函数imap_header提取完整的头文件,并使用imap_fetch_overview提取原始头文件。这两个函数分别为我提供stdClass对象和数组 在进一步处理之前,我希望始终清洁我的进出口。有时FROM或TO可以包含这样的内容, 测试用户 目前在我的FROM中,我只看到测试用户,在使用firebug之前没有电子邮件地址 我怎么才能拿到票test@test.com从这些对象,数组 这是我从imap\u fetch\u overview Array (

我正在使用php imap函数
imap_header
提取完整的头文件,并使用
imap_fetch_overview
提取原始头文件。这两个函数分别为我提供stdClass对象和数组

在进一步处理之前,我希望始终清洁我的进出口。有时FROM或TO可以包含这样的内容,
测试用户

目前在我的FROM中,我只看到
测试用户
,在使用firebug之前没有电子邮件地址

我怎么才能拿到票test@test.com从这些对象,数组

这是我从
imap\u fetch\u overview

   Array
   (
     [0] => stdClass Object
     (
        [subject] => Testing
        [from] => Test User 
        [to] => testuser2@test.com
        [date] => Wed, 17 Apr 2013 18:43:46 +0530
        [message_id] => <abcdef1244.93784jgsfk@test.com>
        [size] => 3443
        [uid] => 1234
        [msgno] => 123
        [recent] => 0
        [flagged] => 0
        [answered] => 0
        [deleted] => 0
        [seen] => 0
        [draft] => 0
        [udate] => 1366204439
    )

)
一个
preg_match
将是一个显而易见的答案,但似乎无法从浏览器中看不到电子邮件地址,但在使用firebug检查时却存在电子邮件地址的bit中找到如何执行它。感谢您的帮助


谢谢。

如果std对象数组的名称为$arr

$arr[0]->to
返回您想要的内容

在第二种情况下


$stdObject您可以进一步使用:

$toaddress=imap\u rfc822\u parse\u adrlist('Test user','localhost');
打印(地址);
排列
(
[0]=>stdClass对象
(
[邮箱]=>测试
[主机]=>test.com
[个人]=>测试用户
)
)

我刚刚发现了这条线索,虽然它很旧,但我希望这条评论能有所帮助。我相信我已经回答了这个问题。碰巧的是,发件人电子邮件的格式是导致问题的原因

From Name


由于标记,浏览器将其转换为HTML标记,我猜类似于span。在第一种情况下,使用str_replace更改“
$arr[0]->to
给我测试用户。不给我电子邮件地址。但是通过firebug检查后,我可以看到它将我的电子邮件地址视为标签。
。你知道它为什么这样做以及应该做什么来纠正它吗?问题是,在我使用firebug之前,我根本看不到我的电子邮件地址。它以的形式存在e> tags。因此,'imap\u rfc822\u parse\u adrlist()也不起作用。我已经从我的完整标题中获得了该数组形式(邮箱、主机、个人),但如何获取在浏览器中看不到的电子邮件地址使用视图源代码,而不是firebug。firebug和浏览器将其视为HTML标记(因为它以
开头)
$arr[0]->to
foreach($stdObject->to as $to)
{
 echo $to->mailbox;
 echo $to->host;
}
$toAddresses = imap_rfc822_parse_adrlist('Test user <test@test.com>', 'localhost');

print_r($toAddresses);

Array
(
    [0] => stdClass Object
        (
            [mailbox] => test
            [host] => test.com
            [personal] => Test user
        )

)