从标头中提取电子邮件


Extract Email from Headers

似乎无法让我的代码工作。警告:preg_match_all() 期望参数 2 是字符串,数组在第 23 行的/script.php 中给出。我正在寻找检索电子邮件地址列表:

<?php
$mbox = imap_open("{******.com:143/notls}", "******@******.com", "******");
echo "<h1>Email Addresses</h1>'n";
$headers = imap_headers($mbox);
if ($headers == false) {
echo "Call failed<br />'n";
} else {
foreach ($headers as $val) {
preg_match_all('/([^: ]+): (.+?(?:'r'n's(?:.+?))*)'r'n/m', $headers, $matches);
echo $maches[2] . "<br />'n";
}
}
imap_close($mbox);
?>
preg_match_all('/([^: ]+): (.+?(?:'r'n's(?:.+?))*)'r'n/m', $headers, $matches);

应该是

preg_match_all('/([^: ]+): (.+?(?:'r'n's(?:.+?))*)'r'n/m', $val, $matches);

您正在循环遍历数组,但每次循环都将整个数组馈送到 preg_match_all 函数中。

另外,您有一个错别字:

echo $maches[2] . "<br />'n";

应该是

echo $matches[2] . "<br />'n";