Skip to content

Instantly share code, notes, and snippets.

@KentarouKanno
Last active March 27, 2017 14:34
Show Gist options
  • Save KentarouKanno/9e9848b841ae6c71dac9 to your computer and use it in GitHub Desktop.
Save KentarouKanno/9e9848b841ae6c71dac9 to your computer and use it in GitHub Desktop.
MFMailComposeViewController

MFMailComposeViewController

アプリ内でメールを作成、送信する機能

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 = ["sample@gmail.com"]
        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)
    }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment