2009-05-29 3 views
6

Kennt jemand eine Möglichkeit, einen Massenspeicherauszug jeder E-Mail eines Google Mail-Kontos auszuführen und die E-Mails in eine Datei zu schreiben?E-Mails (Backup) von Gmail programmatisch herunterladen

Ich suche ein Programm zu schreiben, die von Benutzern dahinten gmail es entweder einzelne Dateien (wahrscheinlich über imap) und sichern oder als pst lassen würde (ich weiß pst wahrscheinlich viel schwieriger sein wird)

Danke, wenn Sie helfen können

Antwort

5

vor einiger Zeit schrieb ich einen Blog-Eintrag über genau das gleiche Thema. Details finden Sie unter HOWTO: Download emails from a GMail account in C#.

-Code verwendet unsere 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); 
    } 
} 
4

Gmail bietet POPaccess. Verwenden Sie einfach library, mit denen Sie mit POP kommunizieren können und Sie sind golden.

Bearbeiten: Ich bemerkte gerade, dass Sie IMAP erwähnt; Ich empfehle Ihnen, POP anstelle von Bulk-Dumps zu verwenden. IMAP ist zu gesprächig für das, was Sie tun möchten. Wenn Sie IMAP verwenden müssen, ist hier a library für Sie.

0

Es ist ein Open-Source-Python-Programm auf Windows kompiliert (mit py2exe) bei https://github.com/jay0lee/got-your-back/wiki

Aber Mac-Anwender benötigen würde, es zu kompilieren (die ich haven wurde aufgrund eines py2exe-Fehlers nicht vollständig erkannt.

In beiden Fällen benötigen Sie auch eine Möglichkeit, das Programm automatisch in einem Zeitplan auszuführen.