2009-05-29 40 views
6

Có ai biết cách thực hiện một bãi chứa hàng loạt mọi email của tài khoản gmail và viết email vào tệp không?Tải xuống email (dự phòng) từ gmail theo lập trình

tôi đang tìm cách để viết một chương trình mà sẽ cho phép người dùng sao lưu có gmail (có thể là thông qua imap) và sao lưu nó lên đến một trong hai tập tin cá nhân hoặc là một pst (i biết pst có lẽ sẽ khó khăn hơn nhiều)

Cảm ơn bạn có thể giúp

Trả lời

5

một thời gian trước, tôi đã viết một bài đăng blog về chính xác cùng một chủ đề. Xem HOWTO: Download emails from a GMail account in C# để biết chi tiết.

Mã sử ​​dụng của chúng tôi 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 cung cấp POPaccess. Vì vậy, chỉ cần sử dụng bất kỳ library nào cho phép bạn giao tiếp bằng POP và bạn vàng.

Chỉnh sửa: Tôi vừa nhận thấy rằng bạn đã đề cập đến IMAP; Tôi khuyên bạn nên sử dụng POP thay cho bãi chứa hàng loạt. IMAP quá trò chuyện với những gì bạn muốn làm.

Nếu bạn phải sử dụng IMAP, đây là a library cho bạn.

0

Có một chương trình Python mã nguồn mở biên soạn cho Windows (sử dụng py2exe) tại https://github.com/jay0lee/got-your-back/wiki

người dùng Nhưng Mac sẽ cần phải biên dịch nó (mà tôi thiên đường 't hoàn toàn tìm ra do một lỗi py2exe).

Dù bằng cách nào, bạn cũng cần có cách để thực thi chương trình tự động theo lịch biểu.

Các vấn đề liên quan