我开发了一个简单的应用程序,用于获取gmail帐户的原子提要并将其内容保存到xml文件中。此应用程序用于原型设计,并将在稍后阶段使用,我可以全面了解。到目前为止,一切都很完美,但是原子进料器返回的物体只是一个简短的总结。现在我明白原子进纸器只返回收件箱中未读的电子邮件,它返回的内容是主题,来自地址,摘要和一些其他后勤字段,但是它不会返回完整的正文,这就是我的意思要求,我怎么做到这一点?
以下是我的代码的副本:
private void btnGetFeed_Click(object sender, EventArgs e)
{
var url = @"https://gmail.google.com/gmail/feed/atom";
var Username = "me@email.com";
var Password = "mycode";
var encoded = TextToBase64(Username + ":" + Password);
var myWebRequest = HttpWebRequest.Create(url);
myWebRequest.Method = "POST";
myWebRequest.ContentLength = 0;
myWebRequest.Headers.Add("Authorization","Basic " + encoded);
var response = myWebRequest.GetResponse();
var stream = response.GetResponseStream();
XmlReader reader = XmlReader.Create(stream);
XmlDocument doc = new XmlDocument();
doc.Load(reader);
doc.Save("AtomFeed.xml");
}
public static string TextToBase64(string sAscii)
{
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] bytes = encoding.GetBytes(sAscii);
return System.Convert.ToBase64String(bytes, 0, bytes.Length);
}
答案 0 :(得分:1)
使用aenetmail的IMAP客户端: github
以下是一个例子:
using (var ic = new AE.Net.Mail.ImapClient("imap.gmail.com", "email", "pass", AE.Net.Mail.AuthMethods.Login, 993, true))
{
ic.SelectMailbox("INBOX");
MailMessage[] mm = ic.GetMessages(0, 10);
// at this point you can download the messages
}