Как я могу извлечь только адреса электронной почты в файл Excel из файла EML с помощью переполнения стека

Я пробовал этот код PHP для извлечения адресов электронной почты из файла EML. но он показывает мне в браузере, как это:

Array ( [0] => [email protected]
[1] => [email protected]
[8] => [email protected]
[16] => [email protected]
[23] => [email protected]
[26] => [email protected]
[33] => [email protected]
[35] => [email protected] [64] => [email protected]
[67] => [email protected] [68] => [email protected]
[87] => [email protected]
[94] => [email protected]
[97] => [email protected]
[104] => [email protected]
)`

Мой код PHP:

<?php
$emails = array();

foreach(rglob("*.eml") as $eml){
$emlContent = file_get_contents($eml);
preg_match_all('/([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6})/i', $emlContent, $matches, PREG_PATTERN_ORDER);for ($i = 0; $i < count($matches[1]); $i++) {
$emails[] .= $matches[1][$i];
}
}$emails = array_unique($emails);
print_r($emails);function rglob($pattern='*', $flags = 0, $path=''){
$paths=glob($path.'*', GLOB_MARK|GLOB_ONLYDIR|GLOB_NOSORT);
$files=glob($path.$pattern, $flags);

foreach ($paths as $path) {
$files=array_merge($files,rglob($pattern, $flags, $path));
}

return $files;
}

?>

Теперь я хочу извлечь только все адреса электронной почты отправителя в файл Excel. Я искал по Интернету, но не получил никакого решения.

Надеюсь, кто-нибудь поможет мне решить проблему.
заранее спасибо

-1

Решение

Попробуйте добавить эту информацию заголовка к вашей функции, это запустит загрузку:

    header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=emails.xls");
header("Pragma: no-cache");
header("Expires: 0");

foreach($emails as $email){
echo $email;
}
1

Другие решения

Вы пытались разобрать заголовок внутри файла eml?

Заголовок заканчивается, когда в файле появляются два последовательных конца строки.

Например:

list($header, body) = explode("\n\n", file_get_contents("mail.eml"));
$headers = http_parse_headers ($header);
var_dump(headers);

Связанные с: Как я могу получить только текстовое содержимое из составного электронного письма?

0

По вопросам рекламы [email protected]