MFMailComposeViewController将签名附加为.txt文件

时间:2017-10-31 19:57:27

标签: ios swift email exchange-server

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

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

@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()
    }
}

1 个答案:

答案 0 :(得分:0)

经过多次挖掘,这是交换服务器的问题,而不是Swift / iOS /等问题。它与Exchange预期订购电子邮件内容的方式有关。我没有找到一个明确的答案,如果较新版本的Exchange是否解决了这个问题。麻省理工学院的链接特别提到了Exchange Server 2007&此外,我能够确认问题是邮件是由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