swift pdf 文件未附加到电子邮件
swift pdf file not attaching to an email
我有下面的代码,假设附加了一个名为 "file.pdf" 的文件,该文件被创建并放置在临时目录中
pdfFileUrl = "\(NSTemporaryDirectory())file.pdf"
但是电子邮件没有我期望的附件
@IBAction func sendEmail(sender: AnyObject) {
createReportPDF()
if MFMailComposeViewController.canSendMail() {
let mail = MFMailComposeViewController()
mail.mailComposeDelegate = self
mail.setToRecipients(["dpreston10@gmail.com"])
mail.setMessageBody("<p>You're so awesome!</p>", isHTML: true)
if let filePath = NSBundle.mainBundle().pathForResource(pdfFileUrl, ofType: "pdf") {
print("File path loaded.")
if let fileData = NSData(contentsOfFile: filePath) {
print("File data loaded.")
mail.addAttachmentData(fileData, mimeType: "application/pdf", fileName: "file.pdf")
}
}
presentViewController(mail, animated: true, completion: nil)
} else {
// show failure alert
}
}
因为您的文件放在用户的临时文件夹中,我认为无法通过 NSBundle
方法访问它。也就是说,如果您将 NSData
写入临时文件夹中的磁盘,然后直接通过电子邮件发送,您可能需要考虑将该变量 (pdfData
) 传递给邮件控制器,例如:
mail.addAttachmentData(pdfData, mimeType: "application/pdf", fileName: "file.pdf")
我有下面的代码,假设附加了一个名为 "file.pdf" 的文件,该文件被创建并放置在临时目录中
pdfFileUrl = "\(NSTemporaryDirectory())file.pdf"
但是电子邮件没有我期望的附件
@IBAction func sendEmail(sender: AnyObject) {
createReportPDF()
if MFMailComposeViewController.canSendMail() {
let mail = MFMailComposeViewController()
mail.mailComposeDelegate = self
mail.setToRecipients(["dpreston10@gmail.com"])
mail.setMessageBody("<p>You're so awesome!</p>", isHTML: true)
if let filePath = NSBundle.mainBundle().pathForResource(pdfFileUrl, ofType: "pdf") {
print("File path loaded.")
if let fileData = NSData(contentsOfFile: filePath) {
print("File data loaded.")
mail.addAttachmentData(fileData, mimeType: "application/pdf", fileName: "file.pdf")
}
}
presentViewController(mail, animated: true, completion: nil)
} else {
// show failure alert
}
}
因为您的文件放在用户的临时文件夹中,我认为无法通过 NSBundle
方法访问它。也就是说,如果您将 NSData
写入临时文件夹中的磁盘,然后直接通过电子邮件发送,您可能需要考虑将该变量 (pdfData
) 传递给邮件控制器,例如:
mail.addAttachmentData(pdfData, mimeType: "application/pdf", fileName: "file.pdf")