8

我已经尝试了很多关于在您的应用程序中发送电子邮件的教程,但我所见过的没有一个显示如何使用它发送图像。我正在从 .WriteToFile 恢复图像,该图像设置为 UIImageView。我应该如何发送带有我的照片的电子邮件?

尼尔

4

1 回答 1

23

您需要在attachmentData邮件中添加一个,将您的图像编码为 NSData。这是一个示例,向您展示如何使用您的图像发送电子邮件。我想你有一个UIViewController可以放置函数的地方sendMail

import MessageUI
class MyViewController: UIViewController, MFMailComposeViewControllerDelegate
{
  // .... your stuff

  func sendMail(imageView: UIImageView) {
    if MFMailComposeViewController.canSendMail() {
      let mail = MFMailComposeViewController()
      mail.mailComposeDelegate = self;
      mail.setCcRecipients(["yyyy@xxx.com"])
      mail.setSubject("Your messagge")
      mail.setMessageBody("Message body", isHTML: false)
      let imageData: NSData = UIImagePNGRepresentation(imageView.image)!
      mail.addAttachmentData(imageData, mimeType: "image/png", fileName: "imageName.png")
      self.presentViewController(mail, animated: true, completion: nil)
    }
  } 

}

为了解除 VC,请在您的 中包含以下方法ViewController

func mailComposeController(controller: MFMailComposeViewController,
    didFinishWithResult result: MFMailComposeResult, error: NSError?) {
        controller.dismissViewControllerAnimated(true, completion: nil)
}

此方法的文档在MFMailComposeViewControllerDelegate中报告。

于 2016-07-14T13:49:43.250 回答