Swift中出现“请设置邮件帐户以发送电子邮件”错误

Göz*_*Bal 3 email iphone email-integration ios swift

我尝试通过我的应用发送电子邮件,但收到一个错误消息

“请设置邮件帐户以发送电子邮件”。

我的代码块在下面。

import MessageUI

@IBAction func emailTapped(_ sender: Any) {   

    let mailComposerVC = MFMailComposeViewController()
    mailComposerVC.mailComposeDelegate = self
    mailComposerVC.setToRecipients(["abc@gmail.com"])
    mailComposerVC.setSubject("Sending you an in-app e-mail...")
    mailComposerVC.setMessageBody("Sending e-mail in-app is not so bad!", isHTML: false)

    if MFMailComposeViewController.canSendMail() {
        self.present(mailComposerVC, animated: true, completion: {() -> Void in })
    }  
}

func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Swift.Error?){
    controller.dismiss(animated: true) { () -> Void in } 
}
Run Code Online (Sandbox Code Playgroud)

yst*_*ack 5

该代码看起来足够好(尽管可以改进),但您需要在使用的设备上设置电子邮件帐户。

import MessageUI
    @IBAction func emailTapped(_ sender: Any) {  

            if MFMailComposeViewController.canSendMail() { 
                let mailComposerVC = MFMailComposeViewController()
                mailComposerVC.mailComposeDelegate = self
                mailComposerVC.setToRecipients(["abc@gmail.com"])
                mailComposerVC.setSubject("Sending you an in-app e-mail...")
                mailComposerVC.setMessageBody("Sending e-mail in-app is not so bad!", isHTML: false)

                self.present(mailComposerVC, animated: true, completion: {() -> Void in })
            }

        }

        func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Swift.Error?){
            controller.dismiss(animated: true) { () -> Void in }

        }
Run Code Online (Sandbox Code Playgroud)

现在,Settings在iPhone上搜索应用程序,然后转到Mail-> Accounts-> Add Account在电话上设置电子邮件帐户。您可以观看视频

  • 邮件帐户的设置位于您的iOS设备上,而不是Xcode。此设置仅在真实设备上的模拟器中不可用。 (3认同)