Загрузите электронные письма (резервное копирование) с Gmail программно

Хорошо, я не думаю, что официальный фрагмент, упомянутый galuszkak, должен использоваться везде, мы должны рассмотреть случай, когда некоторая ошибка может быть вызвана во время обработчика, такого как функция hello_world. Независимо от того, является ли ответ правильным или неправильным, мы должны обратить внимание на заголовок Access-Control-Allow-Origin. Итак, все очень просто, как показано ниже:

@blueprint.after_request # blueprint can also be app~~
def after_request(response):
    header = response.headers
    header['Access-Control-Allow-Origin'] = '*'
    return response

Это все ~~

6
задан Cœur 21 January 2019 в 12:00
поделиться

3 ответа

some time ago I wrote a blog post about exactly same topic. See HOWTO: Download emails from a GMail account in C# for details.

Code uses our 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);
   }   
}
5
ответ дан 10 December 2019 в 00:43
поделиться

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

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

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

4
ответ дан 10 December 2019 в 00:43
поделиться

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

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

1
ответ дан 10 December 2019 в 00:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: