function connexion($server, $user, $pass) { $sock = fsockopen($server, 110, $errno, $errstr, 5); if ($sock == false) { echo "Erreur de connexion au serveur POP [{$errno}] : {$errstr}\n"; return false; } else { // Chercher le message de bienvenue du serveur $reponse = fgets($sock); // Envoi de la commande USER $res = commande($sock, "USER " . $user); if ($res) { // Envoi de la commande PASS $res = commande($sock, "PASS " . $pass); if ($res) { // L'utilisateur est reconnu // on retourne le descripteur de socket return $sock; } else { return false; } } else { return false; } } }
function recuperation_entetes($sock, $num) { $res = commande($sock, "TOP {$num} 0"); if (!$res) { return false; } $entetes = array(); $cle = ''; // lire tout le message while (($ligne = trim(fgets($sock))) != '.') { if (preg_match(RE_ENTETE_SMTP, $ligne, $r)) { $cle = $r[1]; if (!isset($entetes[$cle])) { $entetes[$cle] = $r[2]; } else { if (is_array($entetes[$cle])) { $entetes[$cle][] = $r[2]; } else { $entetes[$cle] = array($entetes[$cle], $r[2]); } } } else { // Autre ligne : ajout a la derniere cle trouvee if (is_array($entetes[$cle])) { $entetes[$cle][count($entetes[$cle]) - 1] .= "\n" . $ligne; } else { $entetes[$cle] .= "\n" . $ligne; } } } return $entetes; }
function get_mail_count($sock) { $res = commande($sock, "STAT"); if ($res) { $res = preg_split('/\\s+/', $res); array_shift($res); } return $res; }
function recuperation_message($sock, $num) { $res = commande($sock, "RETR {$num}"); if (!$res) { return false; } $message = ''; while (($ligne = trim(fgets($sock))) != '') { // On passe les en-tĂȘtes } // Lecture du corps du message while (($ligne = trim(fgets($sock))) != '.') { $message .= $tmp; } return $message; }