iOS
 Computer >> コンピューター >  >> プログラミング >> iOS

iPhoneアプリからメールを送信する方法を解説!URLスキームとMessageUIフレームワークの使い方

iOSアプリケーションからメールを送信するには、URLスキーム(URL Scheme)を利用するか、何らかのイベント発生時にメール送信処理を実行する仕組みを組み込む必要があります。実は、アプリ単体で直接メールを送信できるケースは限られており、それが可能なのはメールアプリそのもの、あるいはiOSのMessageUIフレームワークを使用する場合だけです。ただし、宛先や件名があらかじめ入力された状態でメールアプリを起動することは可能です。

本記事では、この2つの方法をそれぞれ詳しく解説していきます。

まずは、iOS標準の「メール」アプリを起動する方法を、具体的な例とともに見ていきましょう。

  • プロジェクトを作成し、最初のビューコントローラーを開きます。
  • ボタンを追加し、テキストを「open e-mail」に変更します。そのアクションをViewController.swiftクラス内に作成します。
  • もう1つボタンを追加し、「open MF mail」という名前を付けます。こちらも同様にアクションを作成します。

方法1:URLスキームを使ってメールアプリを開く

func sendEmail(email:String) {
    if let url = URL(string: "mailto:\(email)") {
        if #available(iOS 10.0, *) {
            UIApplication.shared.open(url)
        } else {
            UIApplication.shared.openURL(url)
        }
    }
}

この関数を呼び出すことで、指定したメールアドレス宛の新規メール作成画面を開くことができます。1つ目のボタン「open e-mail」のアクション内でこの関数を呼び出してみましょう。実行すると、以下のような結果になります。

方法2:MessageUIフレームワークのMFMailComposeViewControllerを使う

func sendMFmail(email: String) {
    let mailVC = MFMailComposeViewController()
    mailVC.mailComposeDelegate = self
    mailVC.setToRecipients([email])
    mailVC.setSubject("Testing sending email")
    mailVC.setMessageBody("Test Body of email", isHTML: false)
    present(mailVC, animated: true, completion: nil)
}

この関数は、方法1と同じように「open MF mail」ボタンのアクション内で呼び出します。実行すると、次のような結果が得られます。

補足:MessageUIを使う際のポイント

MFMailComposeViewControllerを利用する場合は、ファイルの先頭でimport MessageUIを宣言し、ビューコントローラーをMFMailComposeViewControllerDelegateに準拠させておく必要があります。また、端末によってはメールアカウントが設定されていない場合もあるため、MFMailComposeViewController.canSendMail()で送信可能かどうかを事前にチェックしておくと安全です。

注意: シミュレータではメール機能がサポートされていないため、これらのアプリはシミュレータ上で動作確認できません。必ず実機のデバイスでテストしてください。

  1. EmailJSでVue.jsアプリケーションからメールを送信する方法【初心者向けガイド】

    数日前、シンプルなVueプロジェクトに取り組んでいた際、作成したばかりのコンタクトフォームからメールを送信する必要がありました。誰かがフォームに入力するたびに、自動的に通知メールを受け取りたかったのです。 いろいろ調べていく中でEmailJSに出会いました。公式ドキュメントが充実していて、とても使いやすかったため、この記事としてまとめることにしました。この記事がどなたかの参考になれば幸いです :) はじめよう! この記事では、EmailJSを使ってVue.jsアプリケーションからメールを送信する手順を解説します。 先に進む前に、お使いの環境にVue CLIがインストールされていることを前提と

  2. Outlookでメールエイリアスから送信する方法|Office 365の設定手順を徹底解説

    本ガイドでは、Office 365で作成したメールエイリアスからメッセージを「送信」できるように、Outlookを設定する方法を詳しく解説します。 ご存じのとおり、メールエイリアス宛てに届いたメッセージに返信する場合、「差出人(From)」フィールドにはエイリアスアドレスではなく、プライマリ(メイン)のメールアドレスが表示されます。エイリアスアドレスとして「送信」したい場合は、この記事の手順に従って設定を行ってください。 なぜ「差出人」にエイリアスが表示されないのか? Office 365ユーザーにメールエイリアスを作成すると、エイリアスアドレス宛てに届いたすべてのメッセージはユーザーのプライ