无论何时发生错误,我如何使我的Xamarin应用程序发送电子邮件?

问题描述 投票:0回答:1

我的Xamarin应用程序的发行版正在由非开发人员进行测试,这有时意味着测试人员无法与我交流他们遇到的错误的详细信息。

我想实现一些在发生崩溃或错误时将执行的代码,并将包含错误信息的电子邮件发送到我的地址,以帮助调试。我已经编写了一个电子邮件方法(请参阅下文),但我想知道每当引发未处理的异常时如何调用它,而不是将每个可能的方法都包装在try-catch中。

public static void Email(string htmlString)
        {
            try
            {
                MailMessage msg = new MailMessage();
                SmtpClient smtp = new SmtpClient();
                msg.From = new MailAddress("email here");
                msg.To.Add(new MailAddress("other email here"));
                msg.Subject = "Error Report";
                msg.IsBodyHtml = true;
                msg.Body = htmlString;
                smtp.Port = 1234;
                smtp.Host = "smtp here";
                smtp.EnableSsl = true;
                smtp.UseDefaultCredentials = false;
                smtp.Credentials = new NetworkCredential("email", "password");
                smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                smtp.Send(msg);
            }
            catch (Exception)
            {

            }
        }
c# email xamarin exception
1个回答
0
投票

在Xamarin应用程序中捕获错误的基本方法是使用try / catch块。尝试/捕获很容易获得。

您可以执行以下操作。

private void Send_Clicked(object sender, EventArgs e)
    {
        try
        {
            .......
        }
        catch(Exception ex)
        {
            Email(ex.ToString());
        }

    }
    public static void Email(string htmlString)
    {
        MailMessage msg = new MailMessage();
        SmtpClient smtp = new SmtpClient();
        msg.From = new MailAddress("email here");
        msg.To.Add(new MailAddress("other email here"));
        msg.Subject = "Error Report";
        msg.IsBodyHtml = true;
        msg.Body = htmlString;
        smtp.Port = 1234;
        smtp.Host = "smtp here";
        smtp.EnableSsl = true;
        smtp.UseDefaultCredentials = false;
        smtp.Credentials = new NetworkCredential("email", "password");
        smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
        smtp.Send(msg);        
    }

Xamarin(Mono)在内部通过try-catch包围所有内容并引发Unhandled事件,从而内部“处理”那些未捕获的异常。

来自线程的解释。 Struggling to understand Xamarin exception handling

您可以检查链接。它提供了一种从日志文件获取错误日志的方法。Exceptions when using Xamarin Android

© www.soinside.com 2019 - 2024. All rights reserved.