Using Mail.app with multiple users — using AppleScript: Part 2

The previous post, about hacking multi-user support into Mail.app, seems to have struck a chord, and there have been lots of great questions about how to extend the script, or customize its behavior or appearance. Things tend to get lost in the comments, so I figured I’d create a part 2 to answer some of the questions that have popped up. If you haven’t already, check out part 1 to get caught up.

Some of these might seem a little basic to long-time users, but lets remember that not everyone has been using a Mac since OS 7 (or earlier!) and cut the newly Mac-faithful some slack…

Evan asks: Absolutely perfect, exactly what I was looking for. Well, almost. How about adding a 3rd account?

A third account is done very easily by modifying the script slightly. (Update: If you’d like to do more than 3 accounts, see the solution in the comments which changes our user interface to a listbox)

The first thing you’ll want to do is update our crude little user interface to ask about the third account. This line here decides what options show up in the dialog box:

display dialog "Choose the Mail account to use" buttons {"Jon", "Nicole"} default button 1 with icon note

You can add as many up to 3 options as you want, just by comma seperating them, so instead of {“Jon”, “Elizabeth”} you could have {“Jon”, “Elizabeth”, “David”}
Then you need to modify the “if” statement to support each individual referred to. In the original we said:

if the button returned of the result is "Jon" then
-- do stuff to change account to Jon
else
-- do stuff to change account to Elizabeth
end if

The else is a problem now because it assumes only two conditions. Instead of an else, we can do an else if — one for each individual we want to switch between:

if the button returned of the result is "Jon" then
-- do stuff to change account to Jon
else if the button returned of the result is "Elizabeth" then
-- do stuff to change account to Elizabeth
else if the button returned of the result is "David" then
-- do stuff to change account to David
end if

Inside each condition you’ll need to disable all the other accounts (set enabled to account X to false) and then enable the account they’ve chosen.

Eric asks: I would like to attach to the script the mail icon or a similar icon. Then when I added it to the dock, it is more obvious to click it to run.

This is one of those tricks that long time Mac users will know well, but is not very obvious for newer converts. You can copy and paste any icon from any application/document/folder to any other in the finder. Just click on the icon you want to “borrow” from and hit Apple + I for “Get Info.” In the info dialog, click on the icon and hit Apple + C to copy the icon to the clipboard. Now find your target icon (such as the script you just made) and “Get Info” on it, click the icon in the dialog and this time hit Apple + P to paste. Now you have a pretty icon!

Note: This will be limited by permissions, so if your user doesn’t have permission to ‘write’ to the target object, you won’t be able to paste.

Eric, having figured out the above on his own, then asks: My 2 problems are: 1, I can not add the script to the dock. 2, when I click the script icon, it take me to the editor where I then have to click RUN.

A script, by itself is just a document. In order to make it into a runable application, you have to save it as such in Script Editor. From the File / Save As… dialog change the File Format to “application.”

Under most circumstances you won’t want to check the box for ‘Run Only’ because once you do, you cannot edit it in Script Editor again. Also, uncheck the box for ‘Startup Screen’ to make it run a little more gracefully.

You may also find that the Dock is not the best place for your script — since it will essentially give you two Mail icons. What I did instead was to enable the AppleScript menu and use that for all my common scripts.

If you want to do this, open the Application AppleScript Utility in the AppleScript folder and check the box for ‘Show Script Menu in the menu bar.’ You may also want to uncheck the box for “Show Library scripts” to hide the example scripts Apple includes to make your menu shorter.

Note: For scripts to show up in this menu you’ll have to save them where your Mac expects your scripts to be: In your user’s Library folder you’ll find a folder called “Scripts.” Put them, or an alias to them, in there.

Advertisements