从您的应用发送一封电子邮件,并在Swift中附加图片

时间:2016-07-14 13:19:02

标签: swift image email messageui

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

尼尔

1 个答案:

答案 0 :(得分:15)

您需要在邮件中添加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中报告。