Ejemplo n.º 1
0
        /// <summary>
        /// Shows the native MFMailComposeViewController to send an email.
        /// Raises MailCompleted event when completed.</summary>
        ///
        /// <param name="recipients"> An array of strings representing the email addresses of the recipients.</param>
        /// <param name="subject"> The subject of the email.</param>
        /// <param name="body"> The body of the email.</param>
        /// <param name="bodyIsHTML"> True if the body is HTML; false otherwise.</param>
        /// <param name="image"> The image to attach to the email.</param>
        /// <param name="checkServiceAvailable"> Whether to check if the service is available first.</param>
        /// <returns> True if it is able to show the native view controller; false if it cannot send email.</returns>
        public static bool Mail(string[] recipients, string subject, string body, bool bodyIsHTML, UIImage image, bool checkServiceAvailable)
        {
            if (checkServiceAvailable && !MFMailComposeViewController.CanSendMail())
            {
                return(false);
            }

            var vc = new MFMailComposeViewController();

            if (vc.IsNil)
            {
                return(false);
            }

            vc.mailComposeDelegate = MailComposeViewControllerDelegate.instance;
            vc.SetToRecipients(recipients);
            vc.SetSubject(subject);
            vc.SetMessageBody(body, bodyIsHTML);

            if (image != null)
            {
                var nsdata = image.PNGRepresentation();
                vc.AddAttachmentData(nsdata, "image/png", "image.png");
            }

            UIApplication.deviceRootViewController.PresentViewController(vc, true, null);
            return(true);
        }