[Swift4] 添付メール

アプリ内のデータファイルを添付ファイルでメール送信したくて、ググっていたが…一番近い内容が以下の記事でした。

#はじめに今回は、アプリ内でCSVファイルの中身を作成し、それをメールに自動添付するやり方をまとめました。メーラーを起動させて、メールアドレス・件名・本文などを指定してメール送信するやり方は、以下のURLにまとめてあります...

 

添付ファイルは、Documentフォルダ内のファイルを添付したい…。

 

Documentフォルダまではググれるけど、バイナリファイルとして添付するにはどうするんだろう…と、Dataクラスを潜ってみたら…。

    /// Initialize a `Data` with the contents of a `URL`.
    ///
    /// - parameter url: The `URL` to read.
    /// - parameter options: Options for the read operation. Default value is `[]`.
    /// - throws: An error in the Cocoa domain, if `url` cannot be read.
    public init(contentsOf url: URL, options: Data.ReadingOptions = default) throws

 

英語がわからんけど、使えそう…で、以下のように添付してみました。

        //Documentフォルダのパス
        if let documentDirectoryFileURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last {
            
            // ファイルパス ... ディレクトリのパスにファイル名をつなげてファイルのフルパスを作る
            let realmFileName = "default.realm"
            let targetFilePath = documentDirectoryFileURL.appendingPathComponent(realmFileName)
        
            do {
                //realmファイルの送信
                let data = try Data(contentsOf: targetFilePath)
                mailViewController.addAttachmentData(data, mimeType: "realm/binary", fileName: realmFileName)
            } catch {
                print("error ...")
            }
        }

 

テストして見ると、受け取ったメールの添付ファイルをちゃんと開くことができた!

 

最終的に、メールを送信するメソッドは以下のようになりました。


Add a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です