Mac OS:Automator 脚本,用于将邮件保存到自动生成的文件夹

Mac OS:Automator 脚本,用于将邮件保存到自动生成的文件夹

我正在研究自动化程序并需要它帮助我完成以下简单任务:

我需要将多个邮件的附件(这些附件排序在邮件中的文件夹中)下载并保存到以发件人的电子邮件地址命名的文件夹中。

如果可能的话,我希望将邮件的记录与附件一起保存(可以通过打印 pdf 来完成吗?)

我从未真正使用过自动化程序,但目前我已经设置了一个操作来“获取指定的邮件项目”,该操作连接到邮件中的正确文件夹,并且我已经设置了“从邮件中获取附件”,但我需要找出如何根据发件人姓名命名文件夹以及如何保存到这些文件夹。

答案1

您可能更愿意使用 Applescript 或类似的程序,以便更好地控制操作各个消息的属性。

编辑:我经历了比我想象中更多的尝试和错误,但你应该能够选择一批消息,运行此脚本,并让它在你一开始指定的文件夹中为每个发件人生成文件夹。它不进行记录,但也许足以让你开始。

我还注意到,在 Lion 10.7 和 10.7.1 上,将 [attachment] 保存在 [attachmentPath] 中的命令已损坏(我认为两者都有),但根据我所读到的信息,该问题似乎已在 10.7.2 中得到修复。因此,如果您运行的不是 10.7.2,则可能存在 YMMV。

再次编辑:更多修订...现在我们不会为没有附件的消息创建文件夹...

tell application "Mail"
    set selectedMessages to selection

    set destinationFolder to choose folder with prompt "Pick a Destination"

    repeat with currentMessage in selectedMessages
        repeat 1 times
            set msgSender to sender of currentMessage
            set msgAttachments to mail attachments of currentMessage
            if (msgAttachments is equal to {}) then
                exit repeat
            end if
            tell application "Finder"
                if not (exists folder msgSender of destinationFolder) then
                    set senderFolder to (make new folder at destinationFolder with properties {name:msgSender})
                else
                    set senderFolder to (folder msgSender of destinationFolder)
                end if
            end tell

            repeat with currentAttachment in msgAttachments
                if (downloaded of currentAttachment is true) then
                    set currentAttachmentPath to (senderFolder as string) & (name of currentAttachment)
                    save currentAttachment in currentAttachmentPath
                end if
            end repeat
        end repeat
    end repeat

end tell

相关内容