在Mac上的Outlook收件箱中删除主题相同的旧邮件

问题描述

我从票务系统收到很多电子邮件,其中典型的流程是:

  1. 门票已打开
  2. 分配给技术人员的票证
  3. 门票已回答+ n条回复
  4. 门票关闭 每月总计多达数千封电子邮件。这些电子邮件中的每一个都包含完整的票证流程,因此浪费所有收件箱空间。

这些票已经在到达时移到了单独的收件箱文件夹中。另外,我想使用脚本删除票证,以便仅保留每个对话中的最新消息。一个不错的选择是将所有“已关闭”的票证移到一个单独的文件夹中。

我尝试过AppleScript:

tell application "Microsoft Outlook"
        set theMessages to messages of folder "777_Tickets" of inBox of default account
        set allMessages to messages of workingFolder
        set messageArray to {}
                repeat with thisMessage in messages of workingFolder
                        set temp to {}
                        set end of temp to id of thisMessage
                        set end of temp to subject of thisMessage
                        set end of temp to time received of thisMessage
                        set end of messageArray to temp
                end repeat
end tell

set arrayLength to count of messageArray
set messagesToDelete to {}
        repeat with newMessage from 1 to arrayLength
                set recentSubject to messageArray's item newMessage's item 2
                set recentReceived to messageArray's item newMessage's item 3
                # for checks: log "Iteration: " & newMessage & " of " & arrayLength
                        repeat with thisItem from 1 to count of messageArray

(* The following if-statement is pretty unreadable due to the array structure (list of lists). The logic should be to add the ID to a list if the message has the same subject AND is older than than the one it is compared to AND it is not yet on the list.
In the end I want a list of emails (by message ID) to delete. If that works fine on a test set,I Could delete the failing mails immediately.
*)

                            if messagesToDelete does not contain messageArray's item thisItem's item 1 and messageArray's item thisItem's item 3 is less than recentReceived and messageArray's item thisItem's item 2 is equal to recentSubject then
                                log messageArray's item thisItem's item 1
                                set end of messagesToDelete to messageArray's item thisItem's item 1
                                end if
                        end repeat
        end repeat
#for checks: log "There are " & (count of messagesToDelete) & " emails to be deleted."
*)

但是,当我运行该脚本时,AppleScript引擎会从该文件夹中提取所有20000封电子邮件,然后对其进行处理。这会导致计算机性能大幅下降,并最终导致超时错误

您对我有什么建议吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)