MFMailComposeViewController 将签名附加为 .txt 文件
MFMailComposeViewController Attaches Signature as .txt file
我正在通过 MFMailComposeViewController 发送 pdf。在 Outlook 中查看时,发件人的签名被视为附件,但 iOS 本机邮件 app.Everything 不会按预期工作。
签名显示附件的原因是什么?
@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 期望电子邮件内容排序的方式有关.关于较新版本的 Exchange 是否解决了这个问题,我还没有找到明确的答案。 MIT link 特别提到了 Exchange Server 2007 和 2010。另外,我能够确认问题出在 Exchange 发送邮件时,而不是收到邮件。
http://kb.mit.edu/confluence/pages/viewpage.action?pageId=4981187
我正在通过 MFMailComposeViewController 发送 pdf。在 Outlook 中查看时,发件人的签名被视为附件,但 iOS 本机邮件 app.Everything 不会按预期工作。
签名显示附件的原因是什么?
@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 期望电子邮件内容排序的方式有关.关于较新版本的 Exchange 是否解决了这个问题,我还没有找到明确的答案。 MIT link 特别提到了 Exchange Server 2007 和 2010。另外,我能够确认问题出在 Exchange 发送邮件时,而不是收到邮件。
http://kb.mit.edu/confluence/pages/viewpage.action?pageId=4981187