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

时间:2020-11-03 17:13:12

标签: c# android xamarin mailkit

我正在使用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;
                }

我已设置我的Gmail帐户以显示 状态:所有邮件均已启用POP 和 状态:IMAP已禁用 有4封电子邮件正在等待查看。 (当有29封电子邮件等待时,导致错误。) 该应用程序可以编译并正常运行,上面的代码位于一个按钮下(当前),当我点击该按钮时,该应用程序成功运行了该代码,没有错误-但未显示任何电子邮件-而是显示了正确的时间(请参见上面的gstrEmailMessages )在KMsScannedTextView文本视图中。 文本视图当然应该显示'Subject:{0}“ + message.Subject +” \ n“'四次的结果。 还有一个按钮可以在文本视图KMsScannedTextView中重新显示gstrEmailMessages,所以我知道没有延迟。 我还应该寻找什么以找出为什么没有显示电子邮件? For循环在某种程度上是错误的吗?

当然,当所有方法都可以正常使用时,我会对其进行设置,但是上面的这段代码仅是暂时的。

谢谢。

1 个答案:

答案 0 :(得分:0)

您需要进入GMail设置,转到转发和IMAP / POP 标签,然后将POP设置更改为

  1. 为所有邮件(甚至是已下载的邮件)启用POP
  2. 使用POP访问邮件时,将Gmail的副本保留在“收件箱”中

这些很有可能不是您当前的设置,因此即使看起来 在Web客户端中收件箱中也有4条消息,MailKit的Pop3Client却看到0条消息。

>
相关问题