0

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

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

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

4

1 回答 1

0

mailto您的客户端应用程序必须为URL 方案注册自己。将此添加到您的 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 */
}

目前尚不清楚 [对我来说] 你将如何发送附件。在 Finder 中共享 > 电子邮件?无论如何,您可能需要添加一些东西来处理附件。

于 2013-04-27T02:43:40.583 回答