MFMailComposeViewController将签名附加为.txt文件

我通过MFMailComposeViewController发送PDF。 当在Outlook中查看时,发件人的签名被视为附件,但不是iOS本机邮件应用程序。其他所有function都按预期工作。

签名显示附件的原因是什么?

@IBAction func sendSpecSheetWithEmailButton(_ sender: subclassedUIButton) { buttonURL = sender.urlString! specName = sender.specSheetName! let fileURL = URL(string: buttonURL) if fileURL == URL(string: "https://www.example.com") { alertUserSpecNotAvailable(fileURL: fileURL!, specName: specName) } else { sendMail(fileURL: fileURL!, attachmentType: "pdf", to: [""], cc: ["team@example.com"], subject: "Spec Sheet", message: "The spec sheet you requested is attached. \n\nSent via Our iPhone app") } } 

有人在这里问了一个类似的问题,但是从来没有一个明确的答案。

编辑:这里是sendMail()

 func sendMail (fileURL: URL, attachmentType: String, to: [String]?, cc: [String], subject: String, message: String) { if MFMailComposeViewController.canSendMail() { let mail = MFMailComposeViewController() mail.mailComposeDelegate = self mail.setSubject(subject) mail.setToRecipients(to) mail.setCcRecipients(cc) mail.setMessageBody(message, isHTML: false) switch attachmentType { case "pdf": if let fileData = NSData(contentsOf: fileURL as URL) { print("File data loaded.") mail.addAttachmentData( fileData as Data, mimeType: "application/pdf", fileName: specName) } return self.present(mail, animated: true, completion: nil) case "url": mail.setMessageBody("The requested spec sheet is can be found here: \(fileURL)", isHTML: true) return self.present(mail, animated: true, completion: nil) case "none": return self.present(mail, animated: true, completion: nil) default: break } } else { self.showSendMailErrorAlert() } } 

经过更多的挖掘,这是交换服务器的问题,而不是Swift / iOS /等。这与Exchange预期电子邮件内容的sorting方式有关。 如果新版本的Exchange解决了这个问题,我还没有find明确的答案。 麻省理工学院的链接特别提到了Exchange Server 2007&2010。此外,我能够确认问题是由Exchange发送邮件时,没有收到。

http://kb.mit.edu/confluence/pages/viewpage.action?pageId=4981187

https://support.microsoft.com/en-us/help/969854/the-body-of-a-message-is-shown-incorrectly-as-an-attachment-if-you-try

Interesting Posts