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 2635 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 261 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Fobec dans php5

Bonjour,
vous pouvez poster un message sur le forum, la communaut vous donnera un coup de main pour la mise en place du script.

Publié par bob le poisson dans java

Bonjour, votre script est tres bien mais attention l'utilisation du mot cle static sur la methode scale(BufferedImage bImage, double factor) est inutile et empeche de liberer la ressource.

Publié par adilo dans CMS

merci d\'avance monsieur le precedant

Publié par BIBAK dans CMS

merci infiniment, ce sont des beau icons::: :)

Publié par Axel dans java

la position sur mouseDragged a ete corrigee dans l'article.
Merci Alpcom !