gpt4 book ai didi

swift - 发送带有文件附件的邮件

转载 作者:搜寻专家 更新时间:2023-10-30 22:23:59 24 4
gpt4 key购买 nike

我搜索解决方案以发送带附件的邮件。我有此代码,但文件未附加...

if let url = URL(string: "mailto:\(email)?subject=report&body=see_attachment&attachment=/Users/myname/Desktop/report.txt") {
NSWorkspace.shared().open(url)
}

我看到它可能与 MessageUI 一起工作,但我无法导入这个框架,我不知道为什么。我收到此错误消息:没有这样的模块“MessageUI”我检查了常规 > 链接框架和库,但没有 MessageUI...

谁有在邮件中添加文件的解决方案?谢谢

最佳答案

mailto: URL 中的 attachment 似乎在 macOS 上不受支持(至少不总是……细节似乎很粗略,具体取决于您在互联网上的位置: ))

我发现你可以使用什么 from this blog post , 是 NSSharingService 的一个实例 documented here

Here是一个演示如何使用它的例子。

在您的情况下,您可以执行以下操作:

let email = "your email here"
let path = "/Users/myname/Desktop/report.txt"
let fileURL = URL(fileURLWithPath: path)

let sharingService = NSSharingService(named: NSSharingServiceNameComposeEmail)
sharingService?.recipients = [email] //could be more than one
sharingService?.subject = "subject"
let items: [Any] = ["see attachment", fileURL] //the interesting part, here you add body text as well as URL for the document you'd like to share

sharingService?.perform(withItems: items)

更新

所以@Spire 在下面的评论中提到这不会附加文件。

似乎有一个陷阱需要注意。

为此,您需要查看您的应用功能。

您可以:

  • 停用应用沙箱
  • 为您要从中获取内容的文件夹启用读取权限。

我附上了几张截图。

这是我在“功能”下禁用 App Sandbox 后的样子

App Sandbox disabled

这是一张图片,其中我启用了 App Sandbox 并允许我的应用读取我的 Downloads 文件夹中的内容

App Sandbox enabled

如果执行上述操作,我可以使用此 URL 访问我的名为 document.txt 的文件,该文件位于我的下载文件夹中

let path = "/Users/thatsme/Downloads/document.txt"
let fileURL = URL(fileURLWithPath: path)

并将其附加到邮件中

希望对你有帮助。

关于swift - 发送带有文件附件的邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42715256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com