I have quite a few email accounts in AppleMail. A couple of accounts have more than a handful of mailboxes. Most users have lots and lots of mailboxes. It's not possible to search for a mailbox in AppleMail. We are going to use AppleScript to make a list.
With the below script you will get a list of mailboxes
tell application id "com.apple.mail"
set theMailboxes to get mailboxes
set theAccounts to get accounts
repeat with theAccount in theAccounts
set AccountMailboxes to mailboxes of theAccount
set end of theMailboxes to AccountMailboxes
end repeat
return theMailboxes
end tell
The first line gets the local mailboxes. We then need the accounts. Looping through the accounts we collect the mailboxes of each account. The mailboxes are all added to the list of mailboxes.
The result is not very pretty:
The list isn't formatted, the accounts have IDs. But the mailboxes have the full path. For Mail Archiver I'm doing something similar because the script is the easiest way to get the mailbox path.
Let's make this at least a bit nicer:
tell application id "com.apple.mail"
set theMailboxes to get mailboxes
set finalMailboxes to {}
repeat with theMailbox in mailboxes
set end of finalMailboxes to "Local" & ":" & (name of theMailbox)
end repeat
set theAccounts to get accounts
repeat with theAccount in theAccounts
set AccountMailboxes to mailboxes of theAccount
repeat with accountMailbox in AccountMailboxes
set theName to name of theAccount & ":" & name of accountMailbox
set end of finalMailboxes to theName
end repeat
end repeat
return finalMailboxes
end tell
And the result:
Instead of adding the mailboxes for each account to the list of mailboxes I have added an extra loop to add the account and the name of the mailbox to the list individually. Still not optimal but much better. You can now see which mailbox is in each account.