概要
iOSアプリ内でメールを送信する機能を作る手順をまとめる。
目次
- フレームワークを追加
- ソースコードを書く
- MessageUIをimportする
- MFMailComposeViewControllerインスタンスを生成し、宛先や本文などを設定する
- MFMailComposeViewControllerDelegateで終了処理を実装する
フレームワークを追加
MessageUI.frameworkを追加する
プロジェクト > Build Phases > Link Binary With Libraries > 「+」> MessageUI.framework
ソースコードを書く
1. MessageUIをimportする
import MessageUI
2. MFMailComposeViewControllerインスタンスを生成する
今回はテーブルビューセルがタップされた場合
case 2:
// お問い合わせ機能
if MFMailComposeViewController.canSendMail() {
let mail = MFMailComposeViewController()
mail.mailComposeDelegate = self
mail.setToRecipients(["paciolist@gmail.com"]) // 宛先アドレス
mail.setSubject("問い合わせ") // 件名
mail.setMessageBody("", isHTML: false) // 本文
present(mail, animated: true, completion: nil)
}
else {
print("送信できません")
}
break
3. MFMailComposeViewControllerDelegateで終了処理を実装する
extension SettingsTableViewController: MFMailComposeViewControllerDelegate {
// お問い合わせ機能
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
switch result {
case .cancelled:
print("キャンセル")
case .saved:
print("下書き保存")
case .sent:
print("送信成功")
default:
print("送信失敗")
}
dismiss(animated: true, completion: nil)
}
}
参考
【Swift】 お問い合わせ機能の実装
https://qiita.com/_mkt_/items/fd73c10dcc5a760149e3
【Swift】アプリ内でメーラーを起動しメール送信するやり方
https://qiita.com/kobaboy/items/60a2f44ad53675cfa0ae