接受“作为附件共享”功能作为Mac电子邮件客户端

时间:2013-04-27 00:53:36

标签: macos cocoa email email-client

我正在尝试制作一个超级简单的“电子邮件客户端”来接受将文件/文档作为电子邮件附件发送的应用内功能。我目前不需要任何其他电子邮件功能(我将数据传递到gmail api调用以在webmail上草拟消息),我需要的是将应用程序视为有效的电子邮件应用程序并接受系统要求发送电子邮件附件。

到目前为止,我发现我可以将Mail.app首选项配置为使用不同的电子邮件应用程序,只要它已编译(来自Xcode,而不是AppleScript应用程序),但我无法获得任何测试应用程序,以便与其他应用程序的共享/发送功能配合使用。此菜单项显示为灰色,或抛出错误(“SendMail不知道如何与您的默认邮件客户端通信。请选择要使用的其他邮件应用程序。”)除非我配置为使用Mail或Outlook作为我的电子邮件客户端在这种情况下工作正常。

接受这些电子邮件发送系统调用需要什么?我只需要抓取发送的数据,然后从那里处理它。

1 个答案:

答案 0 :(得分:0)

您的客户端应用必须为mailto网址方案注册自己。将其添加到您的Info.plist:

<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>mailto: urls</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>mailto</string>
        </array>
    </dict>
</array>
</plist>

它需要处理事件。这可以是一个开始:

- (void)applicationWillFinishLaunching:(NSNotification *)aNotification
{
    NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager];
    [appleEventManager setEventHandler:self
                           andSelector:@selector(handleGetURLEvent:withReplyEvent:)
                         forEventClass:kInternetEventClass
                            andEventID:kAEGetURL];
}

- (void)handleGetURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent
{
    NSString *link = [[event paramDescriptorForKeyword:keyDirectObject] stringValue];
    /* do something with the link */
}

[我]不清楚你将如何发送附件。分享&gt;在Finder中发送电子邮件? 在任何情况下,您可能需要添加一些东西来处理附件。