[英]Using C#, how to retrieve list of emails from Gmail server via POP3
[英]EAGetMail, How to read all emails from POP3 Gmail server?
我正在使用EAGetMail库来阅读Gmail的电子邮件。 这是我的代码:
private void readMails(){
MailServer oServer=new MailServer("pop.gmail.com", "something@gmail.com", "noneedtoseethis", ServerProtocol.Pop3);
MailClient oClient = new MailClient("Client");
oServer.SSLConnection = true;
oServer.Port = 995;
try {
oClient.Connect(oServer);
MailInfo[] infos = oClient.GetMailInfos();
Console.WriteLine(infos.Length);
for (int i = 0; i < infos.Length; i++){
MailInfo info = infos[i];
Mail oMail = oClient.GetMail(info);
Console.WriteLine("From: {0}", oMail.From.ToString());
//oClient.Delete(info);
}
oClient.Quit();
} catch (Exception ep) {
Console.WriteLine(ep.Message);
}
}
虽然它看起来唯一得到的是我收到的新消息
每五分钟就有2或3个。
但我想阅读收件箱中的所有电子邮件,而不只是新邮件
我怎样才能做到这一点?
由于Gmail POP3服务器不能像普通的POP3服务器一样工作,即使电子邮件没有被删除,它也会自动隐藏旧电子邮件,因此我建议您使用IMAP4协议,然后您将阅读所有电子邮件。
只需更改:服务器地址到imap.gmail.com,服务器端口到993,ServerProtocol.Pop3到ServerProtocol.Imap4
像这样:
private void readMails(){
MailServer oServer=new MailServer("imap.gmail.com", "something@gmail.com", "noneedtoseethis", ServerProtocol.Imap4);
MailClient oClient = new MailClient("Client");
oServer.SSLConnection = true;
oServer.Port = 993;
try {
oClient.Connect(oServer);
MailInfo[] infos = oClient.GetMailInfos();
Console.WriteLine(infos.Length);
for (int i = 0; i < infos.Length; i++){
MailInfo info = infos[i];
Mail oMail = oClient.GetMail(info);
Console.WriteLine("From: {0}", oMail.From.ToString());
//oClient.Delete(info);
}
oClient.Quit();
} catch (Exception ep) {
Console.WriteLine(ep.Message);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.