2010-11-14 13 views
2

Je réalise un projet qui implique le traitement des données de mon historique Gmail. Plus précisément, je souhaite générer un fichier PDF de plusieurs pages contenant une page personnalisée pour environ 100 personnes, affichant des données telles que le nombre d'e-mails envoyés l'année dernière, le nombre d'e-mails reçus au cours de la dernière année, la longueur moyenne des mots, les termes les plus utilisés dans les courriels, la date du plus ancien courriel envoyé ou reçu, voire le nombre moyen de points d'exclamation ou d'explosifs par courriel, etc.Comment récupérer et traiter les données Gmail

J'ai vu this question, qui avait un lien utile vers IMAP functions in the PHP manual, mais quelqu'un peut-il m'aider avec l'architecture et la difficulté d'un tel projet?

J'Envisioning:

  1. écrire un script php pour exécuter certaines fonctions IMAP sur mes données Gmail et écrire dans une base de données MySQL.
  2. écrire un autre script pour exécuter une boucle de requêtes MySQL sur la base de données et imprimer au format PDF sur la base des résultats

Répondre

2

Tout d'abord, vous avez besoin bibliothèque php imap. Ensuite, il suffit d'utiliser ce tutoriel simple étape par étape:

$email = "[email protected]";//or [email protected]_domain_hosted 
$password = "ini password anda"; 

$imap_host = "{imap.gmail.com:993/imap/ssl}"; 

$imap_folder = "INBOX"; //it's what is called label in Gmail 

$mailbox = imap_open($imap_host . $imap_folder,$email,$password) or die('Failed to open connection with Gmail: ' . imap_last_error()); 

Avec le code ci-dessus, vous avez déjà créé la connexion à Gmail.
Maintenant, si vous voulez rechercher un message particulier, utilisez ceci:

$emails = imap_search($mailbox, 'ALL'); 

Lire RFC 1176 pour les options plus détaillées. Chercher la chaîne "tag SEARCH search_criteria" ou lire la documentation de PHP imap_search.

Ce code traitera des messages récupérés (vous pouvez ensuite traiter à MySQL comme vous s'il vous plaît):

if($emails) 
{ 
    foreach($emails as $email_id) 
    { 
     $email_info = imap_fetch_overview($mailbox,$email_id,0); 
     $message = imap_fetchbody($mailbox,$email_id,2); 
     echo "Subject: " . $email_info[0]->subject . "\n"; 
     echo "Message: " . $message . "\n"; 
    } 
} 

répondre à votre question supplémentaire:

  1. Il est possible de traiter email sur votre serveur local ou même à partir de votre propre ordinateur portable/bureau. Il fonctionne exactement comme le client de messagerie électronique de bureau.
  2. Ce n'est pas si difficile une fois que vous comprenez le flux de base.