如何附加视频或电影文件然后在 swift 中发送电子邮件

How can I attach video or movie file then send email in swift

我找到了浏览图片然后附加并发送电子邮件的代码,它可以正常工作。 我试着拍张照片然后将图像附加到电子邮件中也是可行的。

但是对于视频我该怎么办? 在 func configuredMailComposeViewController() 中,如何检索视频文件并附加到电子邮件中。

谢谢大家

@IBAction func sendVideo(sender: AnyObject) {
    var ipcVideo = UIImagePickerController()
    ipcVideo.delegate = self
    ipcVideo.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
    var kUTTypeMovieAnyObject : AnyObject = kUTTypeMovie as AnyObject
    ipcVideo.mediaTypes = [kUTTypeMovieAnyObject]
    self.presentViewController(ipcVideo, animated: true, completion: nil)
}

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {

    if let myImage = info[UIImagePickerControllerOriginalImage] as? UIImage {

        image = info[UIImagePickerControllerOriginalImage] as! UIImage
        self.dismissViewControllerAnimated(false, completion: nil)
        sendmail()

    }
    else {

        urlVideo = info[UIImagePickerControllerMediaURL] as! NSURL
        self.dismissViewControllerAnimated(true, completion: nil)

    }

}

func configuredMailComposeViewController() -> MFMailComposeViewController {
    let mailComposerVC = MFMailComposeViewController()
    mailComposerVC.mailComposeDelegate = self // Extremely important to set the --mailComposeDelegate-- property, NOT the --delegate-- property

    var imageData = NSData()


    //imageData = UIImageJPEGRepresentation(image, 0.9) // for image is OK

    imageData = UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(urlVideo) // for video still not work

    var now = NSDate()
    var formatter = NSDateFormatter()
    formatter.dateFormat = "yyyy/MM/dd' 'HH:mm:ss'"
    formatter.timeZone = NSTimeZone.localTimeZone()

    var message: String = "บรรยายที่นี่: ... " +
                        "\r\n\r\nข้อมูลเพิ่มเติม ติดต่อได้ที่: อีเมล์... โทร... " +
                        "\r\n\r\nเวลา: " + formatter.stringFromDate(now) +
                        "\r\n\r\nสถานที่: http://kerdhead.blogspot.com/p/location-info.html?lt=" + s_la + "&lg=" + s_lo +
                        "\r\n\r\n" + s_a +
                        "\r\n\r\nติดตั้งแอพ เกิดเหตุ: https://play.google.com/store/apps/details?id=org.farmkaset.thairescue" +
                        "\r\n\r\nGoogle maps: http://maps.google.com/maps?q=" + s_la + "," + s_lo

    mailComposerVC.setToRecipients(["sandman.xjfhtkce@blogger.com"])
    mailComposerVC.setSubject("เรื่อง: .... เวลา: " + formatter.stringFromDate(now))
    mailComposerVC.setMessageBody(message, isHTML: false)
    mailComposerVC.addAttachmentData(imageData, mimeType: "image/png", fileName: "ImageName")

    return mailComposerVC
}

您可以获取视频文件为NSData并使用mailComposer.addAttachmentData方法发送。

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSString : AnyObject]) {

    let videoURL = info[UIImagePickerControllerMediaURL] as! NSURL
    if let fileData = NSData(contentsOfURL: videoURL) {

           //your email related code--------------

           mailComposer.addAttachmentData(fileData, mimeType: "wav", fileName: "myfile.wav")
       }
    }