0

在我的应用程序中,我想发送一封电子邮件,它在调试模式下工作正常,但是当我发布它时,我收到了这个错误。我已经发现了异常,但这会导致它无法发送电子邮件,我真的需要这个功能才能工作。这是如何引起的?如何解决它在部署时也可以工作?我已经在多部手机上对其进行了测试,他们都给出了这个例外,所以使用的手机不是问题。

对应代码:

 this.Dismiss();
var message = new MimeMessage();
message.From.Add(new MailboxAddress("Name", "Email"));
message.To.Add(new MailboxAddress("Name", "Email"));
message.Subject = "Test"

message.Body = new TextPart("plain")
{
    Text = @"Test"
};

using (var client = new MailKit.Net.Smtp.SmtpClient())
{
    try
    {
        client.ServerCertificateValidationCallback = (s, c, h, e) => true;
        client.Connect("smtp.gmail.com", 25, false);

        // Note: since we don't have an OAuth2 token, disable
        // the XOAUTH2 authentication mechanism.

        client.AuthenticationMechanisms.Remove("XOAUTH2");
        client.Authenticate("Account", "Password");

        client.Send(message);
        client.Disconnect(true);

        Toast.MakeText(this.Activity, "Thanks for the email", Android.Widget.ToastLength.Short).Show();
    }
    catch (System.Net.Sockets.SocketException e)
    {
        Toast.MakeText(this.Activity, "Connection error, please try again later!", Android.Widget.ToastLength.Short).Show();
    }

在“姓名”和“电子邮件”是相应的信息,但在本例中进行了更改。与客户端中的“帐户”和“密码”相同。为了安全而进行身份验证。

编辑:错误代码为 11001,消息无法解析主机“smtp.gmail.com”,这也发生在其他端口上。我觉得奇怪的是,它在我的模拟器上调试时可以工作,但在部署时却不能在手机上工作。

4

1 回答 1

1

愚蠢的错误,我忘了添加访问互联网的权限。

虽然它确实在调试模式下工作,但有点奇怪。

于 2017-01-09T18:55:40.100 回答