我正在尝试找到一些代码,可以让我吸出我的 Gmail 帐户中的每封电子邮件,目前使用 Atom 阅读器的代码似乎只读取未读邮件。
我想阅读所有内容,主题,正文和附件。
有没有可能,有没有人有一些工作代码。
戴夫
我正在尝试找到一些代码,可以让我吸出我的 Gmail 帐户中的每封电子邮件,目前使用 Atom 阅读器的代码似乎只读取未读邮件。
我想阅读所有内容,主题,正文和附件。
有没有可能,有没有人有一些工作代码。
戴夫
您要做的不是一个简单的应用程序,我们可以帮助您编写一个邮件客户端应用程序,它需要大量的努力阅读许多关于 POP3 或 IMAP 邮件客户端如何工作的文章,您还必须了解RFC 1939和与这些协议相关的RFC 1081文档。无论如何,您必须使用 IMAP 或 POP3 协议来实现您的邮件客户端应用程序,您可以参考它们之外的许多文章。
和 RFC 文档:
了解如何从 XML 中读取信息,您可以从此提要https://mail.google.com/mail/feed/atom获取您想要的 Gmail 上的所有信息。我在下面有一个示例代码,它读取未读消息的数量并读取标题和摘要,但您可以从谁、附件等处获得其他信息。不需要额外的库:)
try
{
System.Net.WebClient objClient = new System.Net.WebClient();
string response;
string title;
string summary;
//Creating a new xml document
XmlDocument doc = new XmlDocument();
//Logging in Gmail server to get data
objClient.Credentials = new System.Net.NetworkCredential("Email", "Password");
//reading data and converting to string
response = Encoding.UTF8.GetString(objClient.DownloadData(@"https://mail.google.com/mail/feed/atom"));
response = response.Replace(@"<feed version=""0.3"" xmlns=""http://purl.org/atom/ns#"">", @"<feed>");
//loading into an XML so we can get information easily
doc.LoadXml(response);
//nr of emails
nr = doc.SelectSingleNode(@"/feed/fullcount").InnerText;
//Reading the title and the summary for every email
foreach (XmlNode node in doc.SelectNodes(@"/feed/entry"))
{
title = node.SelectSingleNode("title").InnerText;
summary = node.SelectSingleNode("summary").InnerText;
}
}
}
catch (Exception exe)
{
MessageBox.Show("Check your network connection");
}
正如其他人所指出的,您最好的选择是使用 IMAP 协议。但是请注意,Google IMAP 实施需要安全连接,因此这不仅仅是实施 IMAP 的问题。
这里有一个 C# 实现,它还包括安全连接的东西,但要注意其中有很多错误,涉及到标头编码等问题,所以如果你决定使用它,请准备好修复一些错误.
您可以通过例如 IMAP 执行此操作。不过,它应该在帐户设置中启用。
有许多关于使用/实现 IMAP 的 C# 教程,只需 google 即可。