问题描述
我想从我的应用程序发送电子邮件。到目前为止,我已经解决了这个问题,发送也完美无缺:
func showMailComposer() {
guard MFMailComposeViewController.canSendMail() else {
return
}
let composer = MFMailComposeViewController()
composer.mailComposeDelegate = self
composer.setToRecipients(["email@gmail.com"])
composer.setSubject("example")
composer.setMessageBody("",isHTML: false)
present(composer,animated: true)
}
现在我想用邮件发送一个由用户制作的签名。我已经将签名导出为 UIImage。
现在我不知道如何将 UIImage 附加到邮件中。
你是怎么做到的?
非常感谢!
解决方法
您可以使用此 api 添加附件数据 - https://developer.apple.com/documentation/messageui/mfmailcomposeviewcontroller/1616885-addattachmentdata
func addAttachmentData(_ attachment: Data,mimeType: String,fileName filename: String)
来自文档 -
附件
要附加的数据。通常,这是您要包含的文件的内容。该参数不能为nil。
mimeType
指定数据的 MIME 类型。 (例如,JPEG 图像的 MIME 类型是 image/jpeg。)有关有效 MIME 类型的列表,请参阅 http://www.iana.org/assignments/media-types/。该参数不能为nil。
文件名
与数据关联的首选文件名。这是文件传输到目的地时应用于文件的默认名称。在传输之前,文件名中的任何路径分隔符 (/) 字符都将转换为下划线 (_) 字符。该参数不能为nil。
更新
调用看起来像 -
composer.addAttachmentData(
unterschriftFoto?.jpegData(compressionQuality: 0.99) ?? Data(),mimeType: "image/jpeg",filename: "unterschriftFoto.jpeg" /// or whatever you like to call it
)