Question

Quelqu'un sait-il un moyen d'exécuter une décharge en vrac de chaque e-mail d'un compte gmail et écrire les e-mails dans un fichier?

Je cherche à écrire un programme qui permettrait aux utilisateurs de sauvegarder là-bas gmail (probablement via imap) et sauvegarder des fichiers individuels soit à un ou pst (je sais pst sera probablement beaucoup plus difficile)

Était-ce utile?

La solution

il y a quelque temps j'ai écrit un blog sur le sujet exactement le même. Voir Comment faire des e-mails de téléchargement à partir d'un compte GMail en C # pour plus de détails.

Code utilise Rebex Mail Component :

using Rebex.Mail;
using Rebex.Net;
...
// create the POP3 client
Pop3 client = new Pop3();
try
{

   // Connect securely using explicit SSL. 
   // Use the third argument to specify additional SSL parameters. 
   Console.WriteLine("Connecting to the POP3 server...");
   client.Connect("pop.gmail.com", 995, null, Pop3Security.Implicit);

   // login and password
   client.Login(email, password);

   // get the number of messages
   Console.WriteLine("{0} messages found.", client.GetMessageCount());

   // -----------------
   // list messages
   // -----------------

   // list all messages
   ListPop3MessagesFast(client); // unique IDs and size only   
   //ListPop3MessagesFullHeaders(client); // full headers
}
finally
{
   // leave the server alone
   client.Disconnect();      
}


public static void ListPop3MessagesFast(Pop3 client)
{
   Console.WriteLine("Fetching message list...");

   // let's download only what we can get fast
   Pop3MessageCollection messages = 
      client.GetMessageList(Pop3ListFields.Fast);

   // display basic info about each message
   Console.WriteLine("UID | Sequence number | Length");
   foreach (Pop3MessageInfo messageInfo in messages)
   {
      // display header info
      Console.WriteLine
      (
         "{0} | {1} | {2} ",
         messageInfo.UniqueId,
         messageInfo.SequenceNumber,
         messageInfo.Length
      );

      // or download the whole message
      MailMessage mailMessage = client.GetMailMessage(messageInfo.SequenceNumber);
   }   
}

Autres conseils

POP accès . Donc, il suffit d'utiliser une bibliothèque qui vous permet de communiquer en utilisant POP et vous êtes en or.

Modifier Je viens de remarquer que vous avez mentionné IMAP; Je vous recommande d'utiliser POP à la place pour les sauvegardes en vrac. IMAP est trop bavard pour ce que vous voulez faire.

Si vous devez utiliser IMAP, voici de bibliothèque pour vous.

Vous pouvez utiliser fetchmail d'un environnement Unix pour créer un fichier mbox.

http: //lifehacker.com/software/gmail/geek-to-live--back-up-gmail-with-fetchmail-235207.php

Il y a un programme Python open source compilé à Windows (en utilisant py2exe) à https://github.com/jay0lee/got-your-back/wiki

Mais les utilisateurs de Mac devront le compiler (que je ne l'ai pas complètement compris en raison d'une erreur py2exe).

De toute façon, vous avez également besoin d'un moyen d'exécuter automatiquement le programme dans un calendrier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top