C# 从C中读取整个GMail#
我正试图找到一些代码,使我能够吸出我的Gmail帐户中的每封电子邮件,似乎目前使用Atom reader的代码只读取未读邮件 我想阅读所有的东西,主题,身体和附件 是否可能,是否有人有一些工作代码C# 从C中读取整个GMail#,c#,gmail,email-client,C#,Gmail,Email Client,我正试图找到一些代码,使我能够吸出我的Gmail帐户中的每封电子邮件,似乎目前使用Atom reader的代码只读取未读邮件 我想阅读所有的东西,主题,身体和附件 是否可能,是否有人有一些工作代码 Dave您可以通过例如IMAP来完成此操作。但应在帐户设置中启用它 有很多关于使用/实现IMAP的C#教程,只需谷歌就可以了。您需要做的不是一个简单的应用程序,我们可以帮助您编写邮件客户端应用程序,阅读许多关于POP3或IMAP邮件客户端如何工作的文章需要付出大量的努力,而且您还必须了解和这些协议相关
Dave您可以通过例如IMAP来完成此操作。但应在帐户设置中启用它
有很多关于使用/实现IMAP的C#教程,只需谷歌就可以了。您需要做的不是一个简单的应用程序,我们可以帮助您编写邮件客户端应用程序,阅读许多关于POP3或IMAP邮件客户端如何工作的文章需要付出大量的努力,而且您还必须了解和这些协议相关的文档。无论如何,您必须使用IMAP或POP3协议来实现您的邮件客户端应用程序。除此之外,您还可以参考许多文章 和RFC文件:
正如其他人所指出的,您的最佳选择是使用IMAP协议。但是,请注意,Google IMAP实现需要一个安全连接,因此这不仅仅是实现IMAP的问题
有一个C#实现,其中还包括安全连接的东西,但要注意,其中有相当多的bug,涉及到头编码和其他方面,因此,如果您决定使用它,请准备修复一些bug。学习如何从XML中读取信息,您可以从这个提要中获得您想要的关于Gmail的所有信息。下面我有一个示例代码,可以读取未读邮件的数量、标题和摘要,但您可以从谁、附件等处获得其他信息。不需要额外的库:)
试试看
{
System.Net.WebClient objClient=新系统.Net.WebClient();
字符串响应;
字符串标题;
字符串摘要;
//创建新的xml文档
XmlDocument doc=新的XmlDocument();
//登录Gmail服务器获取数据
objClient.Credentials=新系统.Net.NetworkCredential(“电子邮件”、“密码”);
//读取数据并转换为字符串
response=Encoding.UTF8.GetString(objClient.DownloadData)(@)https://mail.google.com/mail/feed/atom"));
响应=响应。替换(@“@”);
//加载到XML中,以便轻松获取信息
doc.LoadXml(响应);
//电邮数目
nr=doc.SelectSingleNode(@“/feed/fullcount”).InnerText;
//阅读每封电子邮件的标题和摘要
foreach(doc.SelectNodes(@“/feed/entry”)中的XmlNode节点)
{
title=节点。选择SingleNode(“title”)。InnerText;
summary=节点。选择SingleNode(“summary”)。InnerText;
}
}
}
捕获(异常exe)
{
显示(“检查您的网络连接”);
}
POP3客户端怎么样?还是IMAP?Thanx对于每个人的回复,我会看看我是否能在接下来的几天内让它工作,如果我能,我会发布一个工作代码示例
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");
}