尝试从应用程序发送电子邮件,并不起作用 – 斯威夫特(iOS)

我尝试了不同网站的2个代码, 从我的iOS应用程序发送电子邮件 。 当我按下发送button,它调用方法mailComposeController,并始终返回我日志“邮件发送”作为结果参数总是MFMailComposeResultSent.value ,即使我有我的iPhone 5S在飞行模式

除此之外,即使当我有互联网连接, 我从来没有收到电子邮件 。 已经检查垃圾邮件和其他文件夹,如果延迟等待一整天,但从来没有收到甚至尝试了几次。

我使用Swift编程,从2014年中旬开始在Yosemite 10.10.5的Macbook Pro视网膜中使用XCode 6.4。

这里的Swift代码:

import UIKit import MessageUI class ViewController: UIViewController, MFMailComposeViewControllerDelegate { override func viewDidLoad() { super.viewDidLoad() if (MFMailComposeViewController.canSendMail()) { var emailTitle = "Vea Software Feedback" var messageBody = "Vea Software! :)" var toRecipents = ["oscar.muntal@gmail.com"] var mc: MFMailComposeViewController = MFMailComposeViewController() mc.mailComposeDelegate = self mc.setSubject(emailTitle) mc.setMessageBody(messageBody, isHTML: false) mc.setToRecipients(toRecipents) self.presentViewController(mc, animated: true, completion: nil) }else { println("No email account found") } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } // Email Delegate func mailComposeController(controller:MFMailComposeViewController, didFinishWithResult result:MFMailComposeResult, error:NSError) { switch result.value { case MFMailComposeResultCancelled.value: println("Mail cancelled") case MFMailComposeResultSaved.value: println("Mail saved") case MFMailComposeResultSent.value: println("Mail sent") case MFMailComposeResultFailed.value: println("Mail sent failure: \(error.localizedDescription)") default: break } self.dismissViewControllerAnimated(false, completion: nil) } } 

提前感谢您的帮助。

对我来说,下面的代码工作得很好:

 import UIKit import MessageUI class ViewController: UIViewController, MFMailComposeViewControllerDelegate { override func viewDidLoad() { super.viewDidLoad() if MFMailComposeViewController.canSendMail() { let toRecipents = ["oscar.muntal@gmail.com"] let emailTitle = "Vea Software Feedback" let messageBody = "Vea Software! :)" let mc: MFMailComposeViewController = MFMailComposeViewController() mc.mailComposeDelegate = self mc.setToRecipients(toRecipents) mc.setSubject(emailTitle) mc.setMessageBody(messageBody, isHTML: false) presentViewController(mc, animated: true, completion: nil) } else { print("cannot send mails") } } func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) { switch result { case MFMailComposeResultCancelled: print("Mail cancelled") case MFMailComposeResultSaved: print("Mail saved") case MFMailComposeResultSent: print("Mail sent") case MFMailComposeResultFailed: print("Mail sent failure: \(error?.localizedDescription)") default: break } dismissViewControllerAnimated(true, completion: nil) } } 

感谢Andre Slotta,我解决了我的问题。

问题是我没有启用设置>邮件,通讯录,日历> myemailaccount“邮件”开关。

这使得能够从本地iOS应用发送和接收电子邮件。 而不是这个,我刚刚启用了“联系人”,“日历”和“笔记”,并使用Gmail iOS应用程序用于在我的iPhone电子邮件的目的。

它也使用我的初始代码,所以它不是一个代码问题,每个人都可以尝试我的初始代码在Swift(而不是Swift2)。

再次感谢Andre Slotta的帮助!

请在您的手机中添加您的电子邮件帐户设置!