MFMailComposeViewController
class MFMailComposeViewController: UINavigationController
使用该控制器可以调起系统电子邮件的界面
email在调起之前,可以对主题、收件、正文进行预填写
第一步:检查用户是否已经配置发送电子邮件的邮箱
if !MFMailComposeViewController.canSendMail() {
print("Mail services are not available")
return
}
如果 canSendMail()
返回 false
,应提示用户前往系统应用中的 "邮件" 进行邮箱设置
第二步: 配置和显示控制器
let composeVC = MFMailComposeViewController()
/// MFMailComposeViewControllerDelegate
composeVC.mailComposeDelegate = self
/// 配置显示页面信息
composeVC.setToRecipients(["addressTo@example.com"]) // 收件人
composeVC.setCcRecipients(["addressCc@example.com"]) // 抄送人
composeVC.setBccRecipients(["addressCc@example.com"]) // 密件抄送
composeVC.setSubject("Hello!") // 主题
composeVC.setMessageBody("Hello from California!", isHTML: false) // 消息内容
composeVC.addAttachmentData(Data.init(), mimeType: "", fileName:"") // 添加附件
composeVC.setPreferredSendingEmailAddress("addressTo@example.com") // 设置发件人中的首选 email
/// 模态推出控制器
self.present(composeVC, animated: true, completion: nil)
第三步: MFMailComposeViewControllerDelegate 代理方法实现
用户点击发送或取消后的代理回调
func mailComposeController(controller: MFMailComposeViewController,
didFinishWithResult result: MFMailComposeResult,
error: NSError?) {
/*
MFMailComposeResult
- sent: 发送成功
- cancelled: 取消发送
- saved: 保存在草稿文件夹中
- failed: 操作失败
*/
dismiss(animated: true, completion: nil)
}
网友评论