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

Swift(ios)を使用して電子メールで添付ファイルを送信するにはどうすればよいですか?


ほとんどのアプリケーションには共有機能があるため、電子メールで添付ファイルを送信する方法を知ることは非常に重要です。したがって、実践的な経験を持つことが重要です。

この投稿では、Swiftを使用してメールで添付ファイルを送信する方法を説明します。

それでは、始めましょう。

このために、標準のビューコントローラであるMFMailComposeViewControllerを使用します。このインターフェイスにより、ユーザーは電子メールメッセージを管理、編集、および送信できます。

詳細については、https://developer.apple.com/documentation/messageui/mfmailcomposeviewcontroller

をご覧ください。

また、MFMailComposeViewControllerDelegateを使用して、MFMailComposeResultからの結果を処理します。

ここでそれについて読むことができますhttps://developer.apple.com/documentation/messageui/mfmailcomposeviewcontrollerdelegate

理解するためのサンプルアプリケーションを1つ作成します

ステップ1-Xcodeを開く→シングルビューアプリケーション→EmailAttachmentという名前を付ける

ステップ2-Main.storyboardを開き、以下に示すように、メールを送信するボタン名を1つ追加します。

Swift(ios)を使用して電子メールで添付ファイルを送信するにはどうすればよいですか?

ステップ3-@IBActionを作成し、以下のようにbtnSendMailという名前を付けます

@IBAction func btnSendMail(_ sender: Any) { }

ステップ4-ViewController.swiftで、MessageUIをインポート

import MessageUI

ステップ5-MFMailComposeViewControllerDelegateにクラスを確認します

class ViewController: UIViewController, MFMailComposeViewControllerDelegate

ステップ6-プロジェクトに添付ファイルを追加します

Swift(ios)を使用して電子メールで添付ファイルを送信するにはどうすればよいですか?

ステップ7-btnSendMailで、以下の関数を記述します。

@IBAction func btnSendMail(_ sender: Any) {
   if MFMailComposeViewController.canSendMail() {
      let mail = MFMailComposeViewController()
      mail.setToRecipients(["test@gmail.com"])
      mail.setSubject("GREETING")
      mail.setMessageBody("Welcome to Tutorials Point!", isHTML: true)
      mail.mailComposeDelegate = self
      //add attachment
      if let filePath = Bundle.main.path(forResource: "sampleData", ofType: "json") {
         if let data = NSData(contentsOfFile: filePath) {
            mail.addAttachmentData(data as Data, mimeType: "application/json" , fileName: "sampleData.json")
         }
      }
      present(mail, animated: true)
      }
   else {
      print("Email cannot be sent")
   }
}

これで完了です!!

ただし、メッセージの送信、キャンセル、失敗など、他の条件も処理する必要があります。このためだけに、上記のプロトコルに準拠しています。

デリゲートメソッドを実装しましょう

func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
   if let _ = error {
      self.dismiss(animated: true, completion: nil)
   }
   switch result {
      case .cancelled:
      print("Cancelled")
      break
      case .sent:
      print("Mail sent successfully")
      break
      case .failed:
      print("Sending mail failed")
      break
      default:
      break
   }
   controller.dismiss(animated: true, completion: nil)
}

これで完了です!!

実際のデバイスでプログラムを実行します。

Swift(ios)を使用して電子メールで添付ファイルを送信するにはどうすればよいですか?

完全なコード

import UIKit
import MessageUI
class ViewController: UIViewController, MFMailComposeViewControllerDelegate {
   override func viewDidLoad() {
   }
   @IBAction func btnSendMail(_ sender: Any) {
      if MFMailComposeViewController.canSendMail() {
         let mail = MFMailComposeViewController()
         mail.setToRecipients(["test@gmail.com"])
         mail.setSubject("GREETING")
         mail.setMessageBody("Welcome to Tutorials Point!", isHTML: true)
         mail.mailComposeDelegate = self
         if let filePath = Bundle.main.path(forResource: "sampleData", ofType: "json") {
            if let data = NSData(contentsOfFile: filePath) {
               mail.addAttachmentData(data as Data, mimeType: "application/json" , fileName: "sampleData.json")
            }
         }
         present(mail, animated: true)
      }
      else {
         print("Email cannot be sent")
      }
   }
   func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result:          MFMailComposeResult, error: Error?) {
      if let _ = error {
         self.dismiss(animated: true, completion: nil)
      }
      switch result {
         case .cancelled:
         print("Cancelled")
         break
         case .sent:
         print("Mail sent successfully")
         break
         case .failed:
         print("Sending mail failed")
         break
         default:
         break
      }
      controller.dismiss(animated: true, completion: nil)
   }
}

  1. メールを送信する方法

    メールを送信したいのですが、どこから始めればよいかわかりませんか?または、電子メールの送信方法は知っているが、より良い電子メールをキュレートするためのヒントが必要な場合もあります。私たちがお手伝いします。 メールを送信する方法は簡単な作業のように聞こえるかもしれませんが、すばらしいメールを送信することはそうではありません。次回メールでコミュニケーションを取りたいときは、受信者と共有するメッセージを知るだけでは不十分であることに気付くでしょう。すばらしいメールを送信する方法は次のとおりです。 メールを送信するために何が必要ですか? メールの送信方法を説明する前に、特定の要件を満たす必要があり

  2. Linuxターミナルからメールを送信する方法

    Linuxターミナルは、数回のキーボードストロークで大量のタスクを実行するためのパワーと容量を提供します。ターミナルでほとんどの時間を過ごす人のために、ターミナルから直接メールを送ることもできます。このガイドでは、手作業で、さまざまな方法やツールを使用してLinux端末から直接メールを送信する方法を説明します。 注 :端末からメールを送信するには、メールサーバーが設定され、正しく機能していることを確認してください。 メール Linux端末から電子メールを送信する最初の最も簡単な方法は、mailを使用することです。 効用。このシンプルなユーティリティを使用すると、受信者、メールの件名を指定し