Publié le 10/01/2011
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Charger les emails sur son compte Gmail

Depuis 2004, Google propose une application de messagerie nommée Gmail, ce service est accessible en ligne à partir d'un navigateur internet. En utilisant une connexion SSL et IMAP, une class PHP est capable de charger les messages à partir de la boite de réception GMail.

Class PHP de lecture des emails: GmailClient.php

Dans ce tutoriel, regroupons dans une class nommée GmailClient.php, les principales fonction de lecture d'une boite de messagerie.
<?php
/**
 * Charger les emails sur GMAIL
 * @author Fobec 2010
 */
 
class GmailClient {
    /** connexion avec le serveur de messagerie Gmail */
    private $mbox=null;
    /** Adresse du serveur gmail, connexion SSL **/
    const gmailAddress='{imap.gmail.com:993/ssl}';
 
    /**
     * Ouvrir une liaison avec GMail
     * @param string $user nom d'utilisateur
     * @param string $pass mot de passe
     */
    public function connect($user, $pass) {
        $this->mbox = @imap_open(GmailClient::gmailAddress, $user, $pass);
        if (!$this->mbox) {
            throw new Exception("Fail to open Gmail Mailbox !!!"."n".imap_last_error());
        }
    }
 
    /**
     * Fermer la liaison avec GMail
     */
    public function close() {
        imap_close($this->mbox);
    }
 
    /**
     * Lire le contenu de la boite de reception
     * @return int nombre de message
     */
    public function count() {
        if (imap_ping($this->mbox)) {
            return imap_num_msg($this->mbox);
        } else {
            throw new Exception("Connection to open has been closed !!!");
        }
    }
 
    /**
     * Charger tous les entetes des messages
     * @return array
     */   
    public function allHeaders() {
        if (imap_ping($this->mbox)) {
            return imap_headers($this->mbox);
        } else {
            throw new Exception("Connection to open has been closed !!!");
        }
    }
 
    /**
     * Charger l'entete d'un message
     * @param int $num numero du message
     * @return array
     */
    public function header($num) {
        if (imap_ping($this->mbox)) {
            return imap_header($this->mbox,$num);
        } else {
            throw new Exception("Connection to open has been closed !!!");
        }
    }
 
    /**
     * Charger le contenu d'un message
     * @param int $num numero du message
     * @return string body au format encodé
     */
    public function body($num) {
        if (imap_ping($this->mbox)) {
            return imap_body($this->mbox,$num);
        } else {
            throw new Exception("Connection to open has been closed !!!");
        }
    }
}
?>

Exemple: connaitre le nombre de message dans la boite de réception

Utilisons la class GmailClient.php pour connaitre le nombre de messages dans la boite de réception GMail.
<?php
require_once('GmailClient.php');
$user='username';
$password='motdepasse';
try {
    $gmailClient=new GmailClient();
    $gmailClient->connect($user, $password);
    $count= $gmailClient->count();
    echo "la boite de reception de ".$user." contient ".$count." message(s)";
    $gmailClient->close();
}  catch (Exception $e) {
    echo $e->getMessage();
}
?>

Résultat:
la boite de reception de fobec contient 3285 message(s)

Exemple: charger l'entêtes et le corps du messages

L'entête et le corps d'un émail contiennent les informations affichées dans tous les messages. L'exemple charge ces données pour le dernier message reçu.
<?php
require_once("GmailClient.php");
$user='username';
$password='motdepasse';
try {
    $gmailClient=new GmailClient();
    $gmailClient->connect($user, $password);
    $count= $gmailClient->count();
    $header=$gmailClient->header($count);
    $body=$gmailClient->body($count);
    $gmailClient->close();
}  catch (Exception $e) {
    echo $e->getMessage();
}
?>
Pour afficher le dernier message, il suffit d'extraire les données à partir des variables $header et $body chargées ci-dessus.
<?php
echo 'Sujet :'.$header->subject;
echo 'Expediteur:'.$header->fromaddress;
echo 'Date:'.$header->date;
echo 'Corps du message'.$body;
?>

Conclusion

Ce tutoriel est une première approche de lecture d'email à partir d'une boite de réception. Le protocole IMAP offre de nombreuses possibilités par rapport à l'ancien POP3.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
php5 - class
Mise a jour
10/01/2011
Visualisation
vu 3500 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 264 articles
|BIO_PSEUDO|
Commentaires récents

Publié par fobec dans logiciel

Bravo, le soft a trouvé quelques 2400 liens sur le site en un temps record.

Publié par Oscar dans java

Je vous remercie pour ce tuto il ma permis non seulement de gerer les couleurs dans les cellules mais aussi de positionner son contenu texte.

Publié par jyfv dans CMS

hgfdhgfdhgf

Publié par jmc dans CMS

Lien sur mon site, rubriques Téléchargez http://users.skynet.be/jean-marie.capellen/

Publié par bapsmaitihere dans logiciel

je souhaite tester