Swift

Swift:アプリでMailerを起動する!


どうも、ささおです!

今回はmailerをアプリから起動する方法をメモしていきます。

 

準備

mailerを起動するときには「MessageUI」というフレームワークを使用します。

まずはMessageUIを入れていきましょう。

  1. navigationエリアの一番上を選択
  2. TARGETS を選択
  3. Links frameworks and Librarysを選択
  4. 検索バーでMessageUIを検索して選択
  5.  add

 

実装

今回は

ボタンをタップするとmailerが起動するという流れにします。

 

まずはUIButtonを作成し、配置しましょう!

 

画面のレイアウトはここで終了です。

このようになっています。

「UIButtonのコード謎!」という方はこちらの記事をご覧ください!

Swift:UIButtonをコードだけで実装するメモ!addTargetの使い方!

 

 

mailer起動関数作成

このようになります!

 

import MessageUI

MessageUIを使用するのでこちらを記述する必要があります。

 

 

@objc func startMailer(sender: UIButton) {}

関数の内容を説明していきます。

MFMailComposeViewController()

これがmailer画面のViewControllerです。

これを色々カスタムしていきます。

 

let toRecipients = [“toSasao@ggmail.com”]

配列toRecipientsはメールを送る先(アドレス)が入っています。

setToRecipientsの引数に入れることでmailer画面でアドレスが表示されます。

 

let CcRecipients = [“ccSasao@ggmail.com”,”ccSasao2@ggmail.com”]

CCは、TOで送るのとの違い、

TOで送る人以外へ向けたもので、

「確認のために見てください!」「念のためにお送りします!」といった意味合いが含まれています。

こちらもsetCcRecipientsの引数に入れることでmailer画面でアドレスが表示されます。

 

let BccRecipients = [“BccSasao@ggmail.com”,”BccSasao2@ggmail.com”]

BCCは、TO.CCで送るのと違い、

BCCは一斉送信する際などの、

アドレスを隠したいときに使用します。

こちらもsetBccRecipientsの引数に入れることでmailer画面でアドレスが表示させます。

 

setSubject(“件名”)

subject、つまり件名を指定することができます。

今回はシンプルに件名に”件名”と表示させます。

 

setMessageBody(“Mailerイケイケ!Yeah!!”, isHTML: false)

MessageBodyには本文を入力します。

“Mailerイケイケ!Yeah!!”とイケイケにしてみました。

 

isHTMLはfalseにしています。

trueにすると本文にHTMLを適用することができます。

つまり、

setMessageBody(“<p style=\”color:blue;\”>Mailerイケイケ!Yeah!!</p>“, isHTML: true)

のようにすることも可能です。

この場合本文の文字が青くなります。

 

present(mailViewController, animated: true, completion: nil)

ここでpresentでmailerを起動します。

 

このままでもメールを送ることができますが、

送ったりしても、元の画面に戻ってくる手段がないです。

ちゃんと戻ってこられるようにしましょう。

 

これで戻ってこられるようになりました!!

確認

びっくりですが、

実機でないと確認できないみたいです・・・

 

エラーが出てしまう場合

僕はこのようなエラーが出てしまって呻いていました。

この場合、iPhone標準のメールアプリでアカウント登録できていない可能性があります。

僕はgmailのアカウントで登録したらうまくいきました。

 

 


コメントを残す

*