アプリ内でメールを作成、送信する機能
import UIKit
import MessageUI
class ViewController: UIViewController, MFMailComposeViewControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
}
// ボタン押下時にメール作成画面をモーダル表示する
@IBAction func openMail(sender: UIButton) {
// check if can send an email
if MFMailComposeViewController.canSendMail() == false {
print("Email Send Failed")
return
}
let mailViewController = MFMailComposeViewController()
mailViewController.mailComposeDelegate = self
mailViewController.setSubject("件名")
let toRecipients = ["[email protected]"]
mailViewController.setToRecipients(toRecipients)
// BundleからPDFを読み込んで添付
let bundle = Bundle.main.path(forResource: "sample", ofType: "pdf")
let date = NSData(contentsOfFile: bundle!)
mailViewController.addAttachmentData(date! as Data, mimeType: "application/pdf", fileName: "sample.pdf")
self.present(mailViewController, animated: true, completion: nil)
}
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
switch result {
case .cancelled: print("Email Send Cancelled")
case .saved: print("Email Saved as a Draft")
case .sent: print("Email Sent Successfully")
case .failed: print("Email Send Failed")
}
dismiss(animated: true, completion: nil)
}
}