1

我提出问题的动机是以下文档,该文档描述了如何使用 ScriptingBridge 集成 mail.app:

http://developer.apple.com/mac/library/samplecode/SBSendEmail/Introduction/Intro.html

我也尝试对 Entourage 应用类似的技术,但到目前为止还没有得到任何结果。我知道使用 AppleScript 可以帮助我解决我的问题,而且 mactech.com 有大量文档可以帮助我解决这个问题。

但我发现这种 ScriptingBridge 技术很优雅,并想弄清楚为什么它不适用于 Entourage。

最大的问题似乎是我无法像在 Mail 中那样根据名称创建 Scripting 类,因为 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 初学者(并且愿意学习),除了回答我的问题外,请原谅语法幼稚并在示例代码中指出它们。

最好的祝福,

亚布拉曼尼亚人

4

1 回答 1

1

一些东西:

  1. 如果您遇到困难,请首先弄清楚如何在 AppleScript 中进行操作。这是大多数应用程序脚本编写者使用的(即最能帮助您的人)以及几乎所有文档的编写目的。实际上,如果你想做很多应用程序脚本,你真的需要学习一些 AppleScript(就像你真的需要学习一点 ObjC 才能从 Python、Ruby 等中使用 Cocoa)。

  2. Scripting Bridge笨重、混淆并且容易出现应用程序兼容性问题,因此将工作 AppleScript 代码转换为它可能会很棘手,如果不是不可能的话,这取决于您所针对的应用程序、您正在使用的命令等等。从记忆中,我认为Entourage 是它绊倒的应用程序之一,在这种情况下,除非您求助于使用原始 Apple 事件代码,否则您将不走运。其他选项是objc-appscript (m'baby),它不太容易出现此类问题,以及 AppleScriptObjC (10.6+),它允许您直接从 AppleScript 调用 ObjC 类,反之亦然。

  3. 你看过CSMail吗?

  4. 随行人员在 Office 2010 中将消失,取而代之的是 Outlook,因此您可能不想花费大量时间来弄清楚如何为其编写 SB 代码。

于 2010-06-01T18:09:52.720 回答