Извлечь письмо из заголовков

0

Кажется, мой код не работает. Предупреждение: preg_match_all() ожидает, что параметр 2 будет строкой, массив указан в /script.php в строке 23. Я ищу, чтобы получить список адресов электронной почты:

<?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);
?>
Теги:
imap
imap-open

1 ответ

0
Лучший ответ
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 весь массив в preg_match_all.

Кроме того, у вас есть опечатка:

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

должно быть

echo $matches[2] . "<br />\n";
  • 0
    На шаг ближе, но все, что печатает, это Array, это не дает мне ценности.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню