Php 从imap头中检索电子邮件地址
我正在使用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 (
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之前,我根本看不到我的电子邮件地址。它以开头)
$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
)
)