如何使用applescript告诉Mail保留已发送邮件的副本

时间:2014-12-02 04:43:56

标签: email applescript

我使用AppleScript并且可以毫无问题地发送消息,但是"已发送"框没有得到我发送的副本。但是,如果我使用邮件应用程序发送邮件,那么"已发送"框得到我发送的副本。所以我想我的AppleScript可能会错过一个命令,或者告诉Mail保留已发送消息的副本。我错过了什么命令?感谢。

tell application "Mail"                                                         
    set theNewMessage to make new outgoing message with properties {subject:theSubject, content:theBody & return & return, visible:true}                       
    tell theNewMessage                                                          
        set visibile to false                                                   
        set sender to theSender                                                 
        make new to recipient at end of to recipients with properties {address:theAddress}                                                                     
        make new attachment with properties {file name:theAttachment} at after the last paragraph                                                              
        send                                                                    
        delay 5                                                                 
    end tell                                                                    
end tell   

2 个答案:

答案 0 :(得分:1)

我认为你没有错过任何命令。我将您的脚本复制到我的iMac上的脚本编辑器中,为theSubject,theBody,theAddress,theSender和theAttachment设置值,然后运行它。它(a)成功发送了邮件,(b)我能够查看它在“已发送邮箱”中发送的邮件。

我尝试使用已知发件人和随机的example.com发件人。在这两种情况下,它都保存在默认的已发送框中。

所以这个问题很可能就在其他地方。确保您当前用于theSender的值映射到Mail中保存已发送邮件的帐户。 (如果是IMAP帐户,可能是在服务器上保存已发送的消息,服务器行为可能会影响您所看到的内容。)

如果这不起作用,请为脚本中的所有变量设置一些测试值,除了地址(使用example.com for theSender),并在问题中包含那些(地址除外)。 (如果您也可以将example.com用于地址,那么这样做,但是有些服务器会立即拒绝该消息,这使得测试此特定情况毫无价值。)

请注意,您有一个不会改变此行为的错误;你有“可见”拼写错误为“visibile”。但是,我尝试了两种方式,在这两种情况下,外发邮件都存储在相应的已发送邮箱中。

答案 1 :(得分:0)

尝试在发送消息后添加此内容...

set accountReference to first account whose name = "my account name"
synchronize with accountReference