如何附加视频或电影文件然后在 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")
}
}
我找到了浏览图片然后附加并发送电子邮件的代码,它可以正常工作。 我试着拍张照片然后将图像附加到电子邮件中也是可行的。
但是对于视频我该怎么办?
在 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")
}
}