如何在 Swift 中打开邮件面板?苹果系统

Posted

技术标签:

【中文标题】如何在 Swift 中打开邮件面板?苹果系统【英文标题】:How to open mail panel in Swift? Mac OS 【发布时间】:2016-09-07 13:12:26 【问题描述】:

在过去的几天里,我一直在努力寻找一种从我的应用程序发送电子邮件的方法。这是我目前正在使用的示例代码。它认为,通过使用这种方法,我可能无法处理我的应用程序将运行的计算机的邮件帐户设置不正确的情况,所以我考虑使用不同的方法。我想知道是否有任何适用于 mac os 的 MessageUI。是否有任何适用于 mac os 的 MessageUI。有什么想法吗?

【问题讨论】:

【参考方案1】:

有两种方法可以做到这一点:

    AppleScript 框架

    NSSharingService

NSSharingService 来撰写邮件:

let service = NSSharingService(named: NSSharingServiceNameComposeEmail)

service?.recipients = ["test@gmail.com"]
service?.subject = "Test Mail"
service?.performWithItems(["Test Mail body"])

启动邮件应用

如果你只是想打开Mail应用,试试下面的代码:

NSWorkspace.sharedWorkspace().launchApplication("Mail")

设置不当:

如果系统上没有配置帐户,此代码将显示邮件配置窗口 当用户尝试发送邮件时,邮件应用程序会显示与设置不当相关的错误,因此您无需为此烦恼 如果您想使用其他邮件应用程序,只需尝试您自己的邮件系统、本机邮件客户端或第三方邮件框架。

从终端尝试:

您可以使用 shell 脚本通过本机客户端发送邮件

mail -s "Hello" "test@gmail.com" <<EOF
Hello, Test!
EOF

【讨论】:

在有机会更新我的问题之前设法弄清楚了,但仍然感谢您和很好的回答!【参考方案2】:

对于 Swift 4,变化不大。

let service = NSSharingService(named: NSSharingService.Name.composeEmail)
service?.recipients = ["test@gmail.com"]
service?.subject = "Test Mail"
service?.perform(withItems: ["Test Mail body"])

【讨论】:

以上是关于如何在 Swift 中打开邮件面板?苹果系统的主要内容,如果未能解决你的问题,请参考以下文章

苹果系统和Windows系统共享文件的方法

苹果笔记本macpro系统缓存保存在哪里?如何进入查看?

苹果电脑屏幕调亮

苹果笔记本怎么把分区合并

苹果怎样找到服务器的密码

Swift 创始人离职原因:对苹果保密文化感到失望