Imap Mail:AE.NET.Mail电子邮件正文是空的

时间:2012-12-07 15:11:28

标签: c# email .net-4.0

我使用AE.NET.Mail来阅读我的电子邮件正文 但所有这些尸体都是空的! 我的代码如下:

    // Connect to the IMAP server. The 'true' parameter specifies to use SSL
    // which is important (for Gmail at least)
    ImapClient ic = new ImapClient("imap.soscharge.com", "main@domain.tk", "123",
                    ImapClient.AuthMethods.Login, 143, false);
    // Select a mailbox. Case-insensitive
    ic.SelectMailbox("INBOX");
    Console.WriteLine(ic.GetMessageCount());
    // Get the first *11* messages. 0 is the first message;
    // and it also includes the 10th message, which is really the eleventh ;)
    // MailMessage represents, well, a message in your mailbox
    MailMessage[] mm = ic.GetMessages(0, 10);
    foreach (MailMessage m in mm)
    {
        Response.Write(m.Sender + "<br /><br />");
    }
    foreach (MailMessage m in mm)
    {
        Response.Write(m.Sender + "<br /><br />");
    }
    // Probably wiser to use a using statement
    ic.Dispose();

我的电子邮件是utf-8编码的 问题是什么,我怎么能抓住这些尸体?

提前致谢

1 个答案:

答案 0 :(得分:5)

GetMessages()方法中存在“headersonly”的默认参数,默认情况下为true,当指定为false时,将下载邮件正文:

        using (ImapClient ic = new ImapClient("imap.gmail.com", 
                    "anemail@example.org", 
                    "PasswordGoesHere!", 
                    ImapClient.AuthMethods.Login, 
                    993, true))
        {
            ic.SelectMailbox("INBOX");
            Console.WriteLine(ic.ListMailboxes("",""));

            // Note that you must specify that headersonly = false
            // when using GetMesssages().
            MailMessage[] mm = ic.GetMessages(0, 10, false);

            foreach (MailMessage m in mm)
            {
                Console.WriteLine(m.From);
                Console.WriteLine(m.Body);
                Console.WriteLine();
            }
        }

        Console.ReadKey();