我在Mail&#39的草稿文件夹中有一条消息。我想复制它(保留其附件),添加TO地址,然后发送它(复制)。
我无法引用副本。
tell application "Mail"
set theTemplate to the (first message of drafts mailbox)
set theDuplicate to (duplicate theTemplate to drafts mailbox)
// error: The variable theDuplicate is not defined.
display dialog ((subject of theDuplicate) as rich text)
tell theDuplicate
-- add the recipient
make new to recipient at end of to recipients with properties {name:("Foo Bar"), address:("foo.bar@domain.com")}
-- send message
send
end tell
end tell
在duplicate
上的邮件词典条目表明我正在尝试做的事情得到支持:
复制v:复制对象。
重复说明符:要复制的对象。
[至位置说明符]:新副本的位置。
[带属性记录]:要在新副本中设置的属性或立即复制。
我不理解什么?
答案 0 :(得分:2)
您缺少一个方面: duplicate
命令不会返回它创建的重复 - 您可以通过缺少字典中的→ <type>
。
因此您需要使用单独的commnand 重复后获取对副本的引用。
可悲的是,AppleScript还没有变得困难:
drafts mailbox
似乎是与定义的特定电子邮件帐户关联的各种特定草稿邮箱的抽象。
定位摘要 drafts mailbox
适用于访问现有草稿,但当复制到草稿邮箱时,似乎是必须定位特定的草稿邮箱。
您可以通过检查执行Events
命令后在AppleScript编辑器中单击set theTemplate to the (first message of drafts mailbox)
时报告的内容来确定存储草稿的实际特定草稿邮箱:它将显示参考到草稿所在的特定邮箱,例如,如果是Gmail帐户:
message id 153525 of mailbox "Drafts (Gmail)"
如果您不想对特定引用进行硬编码,则循环mailboxes of drafts mailbox
以查找包含感兴趣草稿的特定子邮箱。
只有在定位特定草稿邮箱时,duplicate
命令才能正常工作(至少可见 - 可以想象复制到 abstract < / em>邮箱正常工作且Mail.app
有效,但仅仅显示 - 但是,drafts mailbox
中的邮件数量不这一事实>改变暗示否则)。
但乐趣并不止于此:您无法在草稿消息上设置收件人属性并直接发送 :您必须将其转换为{{1首先,还有没有直接的方法来执行此转换(我知道)。
作为一种解决方法,下面的代码使用outgoing message
命令,但是,它有副作用 - 请参阅注释。
redirect