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

Description

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

Script

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
        
activate
        
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