【问题标题】:getting default email client mac OSX cpp获取默认电子邮件客户端 mac OSX cpp
【发布时间】:2014-10-23 15:14:56
【问题描述】:

这是我的问题,我必须在 C++ 中创建一个多平台应用程序,其中将有一个按钮可以打开 defqult 邮件客户端以发送邮件。 所以,是的,我设法为 Windows 做到了,现在我必须为 mac OSX 做到这一点,我似乎无论如何都找不到这样做。 :/

那么有什么方法(系统调用或类似的东西)可以通过传递一些参数来打开默认邮件客户端吗? (只是电子邮件地址就可以了)

提前感谢您的回答,祝您有美好的一天。

【问题讨论】:

    标签: c++ macos email


    【解决方案1】:

    如果你可以使用 Objective-C++,试试这个:

        [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"mailto:my@mail.com"]]
    

    否则,您可以尝试使用Launch Services Reference 中的此功能获取默认电子邮件客户端的 URL:

        LSCopyDefaultApplicationURLForContentType
    

    【讨论】:

    • 你知道如何获取macOS中默认浏览器的名称吗?我尝试使用LSCopyDefaultApplicationURLForContentType,但它返回null。
    【解决方案2】:

    好吧,没关系,我刚刚使用了“system(open "mailto:test@test.com");”一切正常。 :)

    【讨论】:

    • 请务必正确地对您放入的 anything 进行外壳转义。否则,我将发送电子邮件至rm -rf / @evil.domain
    • shell 逃逸是什么鬼? D:
    • 进行系统调用时,需要正确引用参数,否则它们可能会显示为多个命令。例如:test@test.com"; rm -rf /;" 将是一个非常糟糕的电子邮件地址,不能转义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多