我已成功将PDF文档附加到电子邮件中,如下所示。
@IBAction func emailScript(_ sender: Any) {
print ("Now the value of pdfPath is \(SelectedPDF)")
let pdfURL = URL(string:SelectedPDF)
print ("The value of pdfURL is \(pdfURL)")
if MFMailComposeViewController.canSendMail() {
let mail = MFMailComposeViewController()
mail.setMessageBody("<p>You're so awesome!</p>", isHTML: true)
mail.setToRecipients(["Enter one or more emails here"])
mail.mailComposeDelegate = self // Make sure to set this property to self, so that the controller can be dismissed!
//Set the subject
mail.setSubject("email with document pdf")
if let fileData = NSData(contentsOf: pdfURL!) {
print ("File data loaded.")
print (fileData)
mail.addAttachmentData(fileData as Data, mimeType: "application/pdf", fileName: "GST")
}
present(mail, animated: true, completion: nil)
}
else {
print ("Error")
}
}
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
controller.dismiss(animated: true)
}
我确信fileData不是nil。数据流显示在控制台中。附件显示为PDF。但是当我从我的应用程序发送电子邮件时,PDF无法读取。在我的iPad中,我得到一个带标题栏的灰色屏幕。在我的Mac上,我收到错误消息,说明PDF没有被解码。
PDF来自我的Dropbox,其URL来自Parse服务器应用程序。
在浏览器中使用的pdf链接是https://www.dropbox.com/s/rt28egrkyc7uhc7/GSTPurim5777.pdf?dl=0
我做错了什么?
谢谢,
利
答案 0 :(得分:0)
好的,我明白了。 Dropbox网址(至少对于PDF而非所有内容)都包含dl = 0标记以指示下载权限。要通过应用程序发送PDF,您必须将dl = 0更改为dl = 1。然后一切正常。
因此上面的代码没有变化。更改是在我的Parse浏览器中,我列出了我的文件。
利