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

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

【问题讨论】:

    标签: swift macos email messageui


    【解决方案1】:

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

    1. AppleScript 框架

    2. 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"])
    

    【讨论】:

      猜你喜欢
      • 2020-07-29
      • 2020-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-12
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      相关资源
      最近更新 更多