Export and Delete

Summary: Exports messages from large mailboxes and then deletes them from Mailsmith.
Requires: Mailsmith 1.5
Suggested Key Binding: none
Last Modified: 2019-10-02


Set the pMessageThreshold property to the minimum number of messages that you want a mailbox to contain before the script will export it. Set the pExportFolder to the folder where the exported mailboxes should be saved. The script will then export and delete the messages from any mailbox containing at least pMessageThreshold messages and no unread ones.

Installation Instructions · Download in Compiled Format · Download in Text Format


property pMessageThreshold : 800
property pExportFolder : "HD:Users:mjt:Mail:to file:"

on run
tell application "Mailsmith"
if connection in progress then return
set auto checking enabled to false
repeat with mbox in every mailbox
my recurse(mbox)
end repeat
set auto checking enabled to true
end tell
end run

on recurse(mbox)
tell application "Mailsmith"
my processMailbox(mbox)
repeat with submbox in every mailbox of mbox
my processMailbox(submbox)
end repeat
end tell
end recurse

on processMailbox(mbox)
tell application "Mailsmith"
set n to count of messages of mbox
if n > pMessageThreshold then
if (every message of mbox whose seen is false) = {} then
my exportMailbox(mbox)
end if
end if
end tell
end processMailbox

on exportMailbox(mbox)
tell application "Mailsmith"
set n to count of messages of mbox
set mboxFile to (pExportFolder & name of mbox)
display dialog "“" & (name of mbox) & "” has " & n & " read messages. Will save in “" & mboxFile & "”."
export mbox to mboxFile
delete every message of mbox
end tell
end exportMailbox