Загрузка электронных писем (резервная копия) из Gmail программно - PullRequest
6 голосов
/ 29 мая 2009

Кто-нибудь знает способ выполнить массовый дамп каждого электронного письма учетной записи Gmail и записать электронные письма в файл?

Я хочу написать программу, которая позволяла бы пользователям создавать резервные копии gmail (возможно, через imap) и копировать их в отдельные файлы или в виде pst (я знаю, что pst, вероятно, будет намного сложнее)

Ответы [ 4 ]

5 голосов
/ 24 сентября 2009

некоторое время назад я написал в блоге точно такую ​​же тему. См. HOWTO: загрузите электронную почту из учетной записи GMail в C # для получения подробной информации.

Код использует наш Rebex Mail компонент :

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 голосов
/ 29 мая 2009

Gmail обеспечивает POP доступ . Так что просто используйте любую библиотеку , которая позволяет вам общаться по протоколу POP, и вы великолепны.

Редактировать: Я только что заметил, что вы упомянули IMAP; Я рекомендую использовать POP вместо массовых дампов. IMAP слишком болтлив для того, что вы хотите сделать.

Если вы должны использовать IMAP, вот вам библиотека для вас.

1 голос
/ 29 мая 2009

Вы можете использовать fetchmail из среды Unix для создания файла mbox.

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

0 голосов
/ 31 декабря 2014

Существует программа Python с открытым исходным кодом, скомпилированная для Windows (с использованием py2exe) по адресу https://github.com/jay0lee/got-your-back/wiki

Но пользователи Mac должны были бы скомпилировать его (что я до конца не выяснил из-за ошибки py2exe).

В любом случае, вам также нужен способ автоматического запуска программы по расписанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...