更广泛的Gmail Atom Feed正文

时间:2014-02-14 19:12:22

标签: c# email gmail

我开发了一个简单的应用程序,用于获取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);
    }

1 个答案:

答案 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
}