有没有人知道如何执行gmail帐户的每封电子邮件的批量转储并将电子邮件写入文件?
我正在寻找一个程序让用户备份gmail(可能是通过imap)并将其备份到单个文件或作为pst(我知道pst可能会更难)
答案 0 :(得分:5)
代码使用我们的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);
}
}
答案 1 :(得分:4)
Gmail提供POP access。因此,只需使用允许您使用POP进行通信的任何library,您就是金色的。
编辑:我刚注意到你提到了IMAP;我建议您使用POP代替批量转储。对于你想做的事情,IMAP过于繁琐。
如果您必须使用IMAP,则此处为a library。
答案 2 :(得分:1)
您可以使用Unix环境中的fetchmail创建mbox文件。
http://lifehacker.com/software/gmail/geek-to-live--back-up-gmail-with-fetchmail-235207.php
答案 3 :(得分:0)
有一个开源的Python程序编译到Windows(使用py2exe) https://github.com/jay0lee/got-your-back/wiki
但Mac用户需要编译它(由于py2exe错误,我还没有完全弄清楚。)
无论哪种方式,您还需要一种在计划中自动执行程序的方法。