Beispiel #1
0
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;
}
Beispiel #3
0
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;
}