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

时间:2016-09-07 13:12:26

标签: swift macos email messageui

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

2 个答案:

答案 0 :(得分:4)

有两种方法可以做到:

  1. AppleScript框架

  2. NSSharingService

  3. 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
    

答案 1 :(得分:0)

对于Swift 4,几乎没有变化。

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