【问题标题】:Selecting an outgoing mail message programmatically以编程方式选择外发邮件
【发布时间】:2012-06-23 16:30:41
【问题描述】:

这是我正在尝试做的事情:假设您在邮件中并创建一个新的空白邮件消息,然后在其中输入一些数据,例如正文副本等(在我的情况下,该消息已创建通过使用来自 safari 的“此页面的邮件内容”的脚本桥...这个过程的主要目的是我的应用程序。)

我想从我的应用程序中选择该消息并将其分配给:

MailOutgoingMessage *myMessage;

以便我可以以编程方式添加收件人。我尝试了几种看起来合乎逻辑的方法,但到目前为止我还没有找到正确的组合,而且头文件对我来说似乎不是很清楚(我是脚本桥的新手。)

我最初的想法是试试这个:

mailMessage = [[mail outgoingMessages] lastObject];

应该抓取最后创建的传出消息。它似乎起作用,因为我能够将收件人添加到 mailMessage (尽管有几次当存在多条传出消息时我收到了意外的结果,例如将收件人添加到错误的消息中)但尝试记录主题行消息:

NSLog(@"Subject = %@",[mailMessage subject]);

即使在邮件的主题字段中有一个清晰可见的主题,也总是返回 NULL。任何其他参数也会返回 NULL。

我收集它一定是我分配给上面的 mailMessage 的问题,因为我收到消息属性的 NULL (或收到意外结果)的唯一一次是如果我尝试将 mailMessage 指向现有的传出消息。如果我使用脚本桥创建邮件消息,那么我可以正确检索所有属性。

有没有人足够了解 Mail 脚本的层次结构,可以告诉我为什么使用上述 mailMessage 分配的参数得到 NULL 值?最简单的方法是获取我的消息,以便我可以添加收件人并稍后调用:

[myMessage send];

方法?任何见解都会有所帮助。我已经花了一周的时间浏览 mail.h 头文件,现在完全不知道还有什么可以尝试的。

【问题讨论】:

    标签: xcode cocoa email scripting-bridge


    【解决方案1】:

    无法(发送、获取或设置外发消息的属性)用户或Safari创建的。

    这是一个错误(自 Mac OS X 10.4 起已停止工作),或出于隐私/安全方面的考虑。

    【讨论】:

    • 嗯,这绝对是一个拖累......有趣的是它似乎确实有效,尽管有时有点不可靠。我发现如果我像上面那样设置 messageSend,我仍然可以添加收件人,并最终“发送”消息。它确实有效。但是,我无法访问字段的属性。我想知道苹果是否只是把它弄坏了。奇怪的。如果我打电话,它似乎工作得更可靠: sleep (1);在我告诉 Safari 发送消息之后。如果我不这样做,那么收件人是否会被添加到正确的邮件中会受到影响。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    • 2011-09-06
    相关资源
    最近更新 更多