使用Dependency Service从Xamarin.Forms应用程序发送电子邮件

时间:2016-12-09 14:58:20

标签: c# email xamarin.ios xamarin.forms presentviewcontroller

在我的应用程序中,出于调试目的和测试目的,我需要发送电子邮件。

当发送邮件控制器的类不包含PresentViewController的定义时,如何呈现邮件控制器?在用户从触发的警报中单击“是”后,该类需要触发电子邮件应用程序。

    public async Task<bool> SendEmail(Exception ex)
    {
        var result = await SendNotificationToRequestSendingEmail();

        if (result)
        {

            if (MFMailComposeViewController.CanSendMail)
            {
                mailController = new MFMailComposeViewController();

                mailController.SetToRecipients(new string[] { "test@one.com", "test@two.com" });
                mailController.SetSubject("Details");
                mailController.SetMessageBody($"Message: {ex.Message}" +
                                              $"Exception: {ex.ToString()}"
                                              , false);

                mailController.Finished += (object s, MFComposeResultEventArgs args) =>
                {
                    Console.WriteLine(args.Result.ToString());
                    args.Controller.DismissViewController(true, null);
                };

                this.PresentViewController(mailController, true, null); //this line causes the error
            }
        }

        return true;
    }

如何解决此问题或绕过它?这是从Xamarin Forms页面调用的。

1 个答案:

答案 0 :(得分:0)

请看一下这个答案:

Sending e-mail from Gmail in Xamarin.Forms app

除此之外,您还可以使用此NuGet包:

https://www.nuget.org/packages/Xam.Plugins.Messaging/