Skip to main content
 首页 » 编程设计

c#之Imap Mail : AE. NET.Mail 邮件正文为空

2024年02月02日36jackei

我使用 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 编码的。
问题是什么,我怎样才能捕获那些尸体?

提前致谢

请您参考如下方法:

在“headersonly”的 GetMessages() 方法中有一个默认参数,默认情况下为 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();