将 UIImage 附加到邮件 更新

问题描述

我想从我的应用程序发送电子邮件。到目前为止,我已经解决了这个问题,发送也完美无缺:

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。


更新

对于附加的屏幕截图 - enter image description here

调用看起来像 -

composer.addAttachmentData(
    unterschriftFoto?.jpegData(compressionQuality: 0.99) ?? Data(),mimeType: "image/jpeg",filename: "unterschriftFoto.jpeg" /// or whatever you like to call it
)