MailKit不接收电子邮件';t显示收到的电子邮件(Xamarin C#)

MailKit不接收电子邮件';t显示收到的电子邮件(Xamarin C#),c#,android,xamarin,mailkit,C#,Android,Xamarin,Mailkit,我使用的是Xamarin android(C#),接收电子邮件的代码如下: using (var client = new Pop3Client()) { gstrEmailMessages = DateTime.Now.ToString("HH:mm:ss"); client.ServerCertificateValidation

我使用的是Xamarin android(C#),接收电子邮件的代码如下:

                using (var client = new Pop3Client())
                {
                    gstrEmailMessages = DateTime.Now.ToString("HH:mm:ss");

                    client.ServerCertificateValidationCallback = (s, c, h, e) => true;
                    client.SslProtocols = System.Security.Authentication.SslProtocols.Tls12;
                    client.Connect("pop.gmail.com", 995, true);
                    client.AuthenticationMechanisms.Remove("XOAUTH2");
                    client.Authenticate("xxx@gmail.com", "yyyy");  //actual values not shown here

                    //Fetch emails:
                    for (int i = 0; i < client.Count; i++)
                    {
                        var message = client.GetMessage(i);
                        gstrEmailMessages = gstrEmailMessages + "Subject: {0} " + message.Subject + "\n";
                    }

                    //Disconnect connection:
                    client.Disconnect(true);

                    KMsScannedTextView = FindViewById<TextView>(Resource.Id.KMsScannedTextView_id);
                    KMsScannedTextView.Text = gstrEmailMessages;
                }

使用(var client=new Pop3Client())
{
gstrEmailMessages=DateTime.Now.ToString(“HH:mm:ss”);
client.ServerCertificateValidationCallback=(s、c、h、e)=>true;
client.SslProtocols=System.Security.Authentication.SslProtocols.Tls12;
client.Connect(“pop.gmail.com”,995,true);
client.authenticationMechaniss.Remove(“XOAUTH2”);
客户端身份验证(“xxx@gmail.com“,“yyy”);//此处未显示实际值
//获取电子邮件:
for(int i=0;i
我已经设置了我的gmail帐户以显示 状态:对所有邮件启用POP 和 状态:IMAP已禁用 有4封电子邮件等待查看。(当有29封电子邮件等待时,它导致了一个错误。) 该应用程序编译和运行良好,上面的代码在一个按钮下(目前),当我点击该按钮时,该应用程序成功运行代码,没有错误-但没有显示任何电子邮件-而是在textview KmsCannedTextView中显示正确的时间(请参阅上面的gstrEmailMessages)。 文本视图当然应该显示'Subject:{0}'+message.Subject+“\n”'的结果四次。 还有一个按钮可以在textview KmsScannedtTextView中简单地重新显示gstrEmailMessages,因此我知道没有延迟。 我还应该寻找什么来找出为什么不显示电子邮件?for循环在某种程度上是错误的吗

当然,当一切正常时,我会设置它,但上面的代码只是暂时的


提前感谢。

您需要进入GMail设置,进入转发和IMAP/POP选项卡,然后将POP设置更改为

  • 为所有邮件启用POP(即使是已经下载的邮件)
  • 使用POP访问邮件时,请在收件箱中保留Gmail副本

  • 很可能这些不是您当前的设置,因此即使在web客户端中查看时收件箱中似乎有4封邮件,MailKit的POP3客户端仍会看到0封邮件。

    从以下内容开始,并阅读页面上的链接:您是否实际调试了代码?是客户端。计算正确的(4)值?GetMessage()是否正确返回值?在调用connect之前是否应设置身份验证值?谢谢。它现在可以工作,但以下情况除外:它只统计一次邮件。此后,它不会在收件箱中看到任何剩余的邮件。这些邮件也会进入我的桌面电子邮件程序(Thunderbird)有关系吗?我的gmail帐户设置为对所有邮件(即使是已下载的邮件)启用POP,并且当使用POP访问邮件时,在收件箱中保留gmail副本。仍然只统计一次邮件。确保未将Thunderbird配置为在通过POP下载邮件后删除邮件(这是默认设置)。再次感谢您,jstedfast。@JonathanT如果您通过这个答案解决了这个问题,请接受它(单击“✔” 在这个答案的左上角),它将帮助其他有类似问题的人。