【发布时间】:2020-11-04 03:09:09
【问题描述】:
我正在使用 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"' 四次的结果。 还有一个按钮只是在 textview KMsScannedTextView 中重新显示 gstrEmailMessages,所以我知道没有延迟。 我还应该寻找什么来找出为什么没有显示电子邮件? For 循环在某些方面是错误的吗?
当然,当一切正常时,我会按意图进行设置,但上面的代码只是暂时的。
提前致谢。
【问题讨论】:
-
从以下开始并阅读页面上的链接:developers.google.com/gmail/api/quickstart/dotnet
-
你真的调试过代码吗? client.Count 是正确的 (4) 值吗? GetMessage() 是否返回值?你不应该在调用 connect 之前设置你的 auth 值吗?
标签: c# android xamarin mailkit