从C#读取gmail帐户的Atom提要

Cra*_*893 8 c# xml gmail atom-feed

我有一个项目会将包含某些数据的电子邮件发送到Gmail帐户.我认为阅读Atom提要可能更容易,而不是通过POP连接.

根据Google,我应该使用的网址是:

https://gmail.google.com/gmail/feed/atom
Run Code Online (Sandbox Code Playgroud)

问题/问题是:如何验证我想要查看的电子邮件帐户?如果我在Firefox中使用它,它会使用cookie.

我也不确定如何"下载"该请求应该返回的XML文件(我相信正确的术语是流).

编辑1:

我正在使用.Net 3.5.

Kir*_*tan 6

.NET framework 3.5提供了读取提要的本机类.本文介绍了如何执行此操作.

我没有使用它,但必须有一些URL的身份验证.你可以检查一下.我也会这样做,并将答案发回.

如果您没有使用框架3.5,那么您可以尝试使用Atom.NET.我曾经用过一次,但它的旧版本.如果满足您的需求,您可以尝试一下.

编辑:这是分配用户凭据的代码:

XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = new NetworkCredential("abc@abc.com", "password");

XmlReaderSettings settings = new XmlReaderSettings();
settings.XmlResolver = resolver;

XmlReader reader = XmlReader.Create("https://gmail.google.com/gmail/feed/atom", settings);
Run Code Online (Sandbox Code Playgroud)


ale*_*lex 6

这是我在Vb.net中使用的:

objClient.Credentials = New System.Net.NetworkCredential(username, password)
Run Code Online (Sandbox Code Playgroud)

objClient的类型为System.Net.WebClient.

然后,您可以使用以下内容从Feed中获取电子邮件:

Dim nodelist As XmlNodeList
Dim node As XmlNode
Dim response As String
Dim xmlDoc As New XmlDocument

'get emails from gmail
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>")

'Get the number of unread emails
xmlDoc.LoadXml(response)
node = xmlDoc.SelectSingleNode("/feed/fullcount")
mailCount = node.InnerText
nodelist = xmlDoc.SelectNodes("/feed/entry")
node = xmlDoc.SelectSingleNode("title")
Run Code Online (Sandbox Code Playgroud)

这在C#中应该没有什么不同.