我的问题的动机是以下文档,其中描述了如何使用ScriptingBridge集成mail.app:
http://developer.apple.com/mac/library/samplecode/SBSendEmail/Introduction/Intro.html
我也尝试在Entourage中应用类似的技术但到目前为止无法获得任何结果。我知道使用AppleScript可以帮助我解决我的问题,mactech.com有这么多的文档。
但是我觉得这个ScriptingBridge技术很优雅,并且想知道为什么它不适用于Entourage。
最大的问题似乎是我无法根据其名称创建Scripting类,因为它发生在Mail中,因为Entourage的接口与Mail的标题不同。
有人可以告诉我我错过了什么,或提供任何关于为什么这不起作用的暗示?
我也在添加示例代码
`
MicrosoftEntourageApplication * mail = [SBApplication
applicationWithBundleIdentifier:@"com.Microsoft.Entourage"];
MicrosoftEntourageOutgoingEmailMessage * emailMessage =
[[[mail classForScriptingClass:@"outgoing message"] alloc]
initWithProperties:
[NSDictionary dictionaryWithObjectsAndKeys:
@"my sample subject", @"subject",
@"my sample body", @"content",
nil]];
//then i create a set of recipients and try to use "to recipient" as the string scripting class id, but MicrosoftEntourageRecipient is returned as nil
MicrosoftEntourageRecipient * theRecipient =
[[[mail classForScriptingClass:@"to recipient"] alloc]
initWithProperties:
[NSDictionary dictionaryWithObjectsAndKeys:
@"johndoe@adobe.com", @"address",
nil]];
`
我试图让简单的事情发挥作用,我甚至不专注于我现在应该做的任务。
我是一个Cocoa初学者(并且愿意学习),请原谅一个句法天真的人,除了回答我的问题之外,还要在示例代码中指出它们。
最诚挚的问候,
萨勃拉曼尼亚
答案 0 :(得分:1)
一些事情:
如果您遇到困难,请首先弄清楚如何在AppleScript中执行此操作。这就是大多数应用程序脚本编写者所使用的(即最能帮助您的人)以及几乎所有文档的编写内容。实际上,如果你想做很多应用程序脚本,你真的需要学习一些AppleScript(正如你真的需要从ObjC那里学习使用Python,Ruby等的Cocoa)。
脚本桥是clunky, obfuscated and prone to application compatibility problems,因此将工作AppleScript代码转换为它可能会非常棘手(如果不是不可能的话),具体取决于您要定位的应用程序,您正在使用的命令等等。从记忆中,我认为 Entourage是它绊倒的应用程序之一,在这种情况下,除非你使用原始Apple事件代码,否则你运气不佳。其他选项是objc-appscript(m'baby),它更不容易出现此类问题,而AppleScriptObjC(10.6+)则允许您直接从AppleScript调用ObjC类,反之亦然。
您看过CSMail了吗?
随行人员将在Office 2010中转而使用Outlook,因此您可能不想投入大量时间来确定如何为其编写SB代码。