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