imap_extract.php:
<?php
$user = $argv[1];
$pass = $argv[2];
$imap = imap_open("{www.papelmail.com:993/imap/ssl/novalidate-cert}", $user, $pass );
$folders = imap_list($imap, "{www.papelmail.com:993/imap/ssl/novalidate-cert}", "*");
foreach ($folders as $folder) {
$imap = imap_open($folder, $user, $pass);
if($imap){
echo $folder . "\n";
$msgs = imap_sort($imap,SORTDATE,0);
$numMessages = imap_num_msg($imap);
foreach($msgs as $msg){
$header = imap_header($imap, $msg);
if(isset($header->from)){
foreach($header->from as $from){
if(isset($from->mailbox) && isset($from->host)){
echo $from->mailbox . "@" . $from->host . "\n";
}
}
}
if(isset($header->to)){
foreach($header->to as $to){
if(isset($to->mailbox) && isset($to->host)){
echo $to->mailbox . "@" . $to->host . "\n";
}
}
}
if(isset($header->reply_to)){
foreach($header->reply_to as $from){
if(isset($from->mailbox) && isset($from->host)){
echo $from->mailbox . "@" . $from->host . "\n";
}
}
}
}
}
else echo "$folder does not open\n";
}
?>
Este fichero se ejecuta desde línea de comandos con php cli instalado:
php -f imap_extract.php Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. mypass > output_file.txt
sort output_file.txt | uniq > output_file_uniq.txt
Así al fiinal tenemos el fichero output_file_uniq.txt con todas las direcciones de emails sin repeticiones.