

MFMailComposeViewControllerを使ってアプリ内でメーラーを開きメールを送信しようとしたのですが、うまくいかなく今回質問しました。関連すると思われるコードは下記のようになっています。  
ただ、printによるログをみるとEmail Sent
Successfullyと出力され成功しています。送信したメールがiPhoneのメーラの送信フォルダに残り続けており、完全に送信できなかったように見受けられました。  
どなたか解決法分かる方はよろしくお願いいたします。

[code]

    @IBAction func mail_send(_ sender: Any) {
    
    
        if MFMailComposeViewController.canSendMail()==false {
            print("Email Send Failed")
            return
        }
    
        let mailViewController = MFMailComposeViewController()
    
    
        mailViewController.mailComposeDelegate = self
    
        //  件名
        let subject = String(id)
        // mailViewController.setSubject("Bug Report")
        mailViewController.setSubject(subject)
    
        let toRecipients = ["test@gmail.com"]
        mailViewController.setToRecipients(toRecipients)
    
        let body = list[row_now]
        mailViewController.setMessageBody(body, isHTML: false)
    
        if MFMailComposeViewController.canSendMail() {
            self.present(mailViewController, animated: true)// , completion: nil
        } else {
            self.showSendMailErrorAlert()
        }
    }
    
    func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
    
        switch result.rawValue {
        case MFMailComposeResult.cancelled.rawValue:
            print("Email Send Cancelled")
            break
        case MFMailComposeResult.saved.rawValue:
            print("Email Saved as a Draft")
            break
        case MFMailComposeResult.sent.rawValue:
            print("Email Sent Successfully")
            break
        case MFMailComposeResult.failed.rawValue:
            print("Email Send Failed")
            break
        default:
            print("Email Default Case")
            break
        }
    
        self.dismiss(animated: true, completion: nil)
    }
    
[/code]


CC BY-SA 3.0
2016-12-10T09:54:40.103
31072
2016-12-11T02:07:51.600
2016-12-11T02:03:58.223
5519
19875
question
swift ios
MFMailComposeViewControllerによるメールの送信が失敗してもResultがsentになる


それは今のところそういう仕様で、正しい動作です。

<https://developer.apple.com/reference/messageui/mfmailcomposeresult/1616878-sent>

> The email message was queued in the user’s outbox. It is ready to send the
> next time the user connects to email.

上記の通り、ドキュメントによると`MFMailComposeResult.sent`は「outbox」つまり「送信」フォルダに保存されたという状態を表します。メールが送信されたかどうかではありません。典型的な例としてはネットワークが繋がらないときなどに発生します。「送信」フォルダに保存されたメールは、設定にもよりますが、次にメール.appにアクセスした際に自動的に送信されます。


CC BY-SA 3.0
2016-12-11T02:07:51.600
31077
2016-12-11T02:07:51.600
5519
31072
answer