email

I’m a bit overdue for updating my Load Images AppleScript for loading images in Apple Mail messages for the latest version of Apple’s operating system for Mac OS X, 10.10 or “Yosemite”. I actually had a version ready during the betas of Yosemite, but somewhere along the way the button text changed from “Load Images” to “Load Remote Content”. So I had to repeat the investigative work to extract all of the translated versions of the button text. In other words, <whine>localization is hard.</whine> Also, I was lazy / busy.

A reader question made me aware that my Load Images AppleScript for loading images in Apple Mail messages is specific to, and hard-coded for, the English language versions of Mac OS X. This is because the script is looking for a button with the text “Load Images”. Switch to any other language, and that button won’t—can’t—be found by the script. This is a limitation of using GUI Scripting to activate the button.

I’m not an expert in internationalization, and I don’t know if there’s a way to detect the active language of Mac OS X or, even better, look up the string to search for, regardless of language. If anyone knows how to do that kind of thing in AppleScript, please let me know. I’d love to add it to the script.

In the meantime, I’ve revised the script to make the text of the Load Images button easy to change. It’s one line at the start of the script, after the initial comments:

-- The text of the [Load Images] button in your version of Apple Mail.
-- If you're using a non-English version of Mac OS X, uncomment ONLY the line with your language on it, and save.
set loadImagesButtonNameTextString to "Load Images" -- English
-- set loadImagesButtonNameTextString to "Carica immagini" -- Italiano
-- set loadImagesButtonNameTextString to "Cargar imágenes" -- Español

If you want to use the script with a non-English version of Mac OS X, simply uncomment the line that has the right button name for your language, and save the revised script.

These are just the languages for which I could type the button name on my keyboard. For other languages, I had no idea how to type them on my US English keyboard! If you can contribute additional strings for the Load Images button in other languages, I would be grateful to add them, and will credit you for the addition. Just send them to me using the email in the sidebar.

The project page has the download link, and the script contains the version history, and a lot of details in the comments.

I’ve updated the Load Images AppleScript that lets you load images in a Mail.app message via a keystroke, to be compatible with Mac OS X 10.9 “Mavericks”. The original post has the download link, and the script contains the version history, and a lot of details in the comments.

I like Apple Mail for Mac OS X, but one thing that irritates me to no end is that the Load Images button (Load Remote Content in Mac OS X 10.10), which loads the images in a message on-demand, doesn’t have a keyboard shortcut. Because it’s not a menu item, there’s no easy way to add one. I looked for a way to add a keystroke to Load Images for more than five years before I finally found a way to do it.

The hard part is triggering the Load Images button itself, by anything besides a mouse click. What finally did it was using the GUI Scripting feature of AppleScript to tell the button to click itself. Once I had an AppleScript that worked, it was simple to use FastScripts to trigger the script with a keyboard shortcut.

Why don’t I let Mail load images automatically? Spammers use image loading to confirm the validity of an email address. See this Apple Support Forum post for some details, and how to turn it off.

(Because Mail.app’s user interface has changed across various versions, and with different preference settings, the actual code is more complex. See the AppleScript for the full, ugly details.)

This user interface elements path, or specifier, tells the GUI Scripting system how to reach a specific user interface element, in this case a button, and what to do with it. It’s far from obvious how to determine one of these UI specifiers just by looking at a Mail window; I used the very interesting developer tool UI Browser to figure it out.

It’s also specific enough to be brittle; it has changed from prior versions of Apple Mail, and will probably change in the future. When it does this script will stop working and start beeping. I’ve written the script to adapt to a few different version and configuration possibilities, and I’ll try to update it if it ever breaks. The current version (v1.6) is compatible with Mac OS X 10.5 (“Tiger”) through Mac OS X 10.10 (“Yosemite”).

The rest of the script is error handling and AppleScript ceremony. It should make sense if you’re familiar with AppleScript, and there are plenty of comments, so I won’t describe it here.

Add a Keyboard Shortcut for Running the AppleScript

Adding a keyboard shortcut for an already-existing menu item is easily done using the Keyboard preference pane. Adding a keyboard shortcut for an AppleScript requires a third-party utility. You might already have a favorite—there are lots to choose from—and so do I. FastScripts from Red Sweater Software does a great job handling application-specific AppleScripts, and it’s free if you don’t need more than 10 keyboard shortcuts. (It’s also a good value at $14.95 for the unlimited version.)

Note: If you use the same keyboard shortcut I did, Command-Shift-L, you’ll need to change the keyboard shortcut for the existing menu command that uses it, by adding a new one to that command, using the technique at the Mactuts+ article linked above.

This announcement comes as something of a shock to me. After holding onwaiting for Cocoa Eudora, this shift in strategy feels like the rug being yanked out. It’s going to take some time to digest, and I suppose we should wait for a few days before forming a mob and see if further details emerge. I would especially like to hear more about what “using the Thunderbird platform” really means, and what will be happening with the Eudora code base, especially the long-rumored Cocoa Eudora code.

For now, we’re a bit light on details. The spin on the announcement is that Eudora is being released from the constraints that come from being a commercial product, freed to grow, change, and thrive as an Open Source project. Who knows, that may happen — but it’ll be 6 months before we see a release that might give a clue as to how well it will work out. I confess, I’m skeptical, and not optimistic, for a couple reasons:

Update: The latest version of the script is 1.1, released 15-Nov-2006. Download link below. See the read me file and script version history for changes.

I continue to use and love Eudora as my email client. This despite it being a little long in the tooth, and with a visual style straight from 1999. It may look like a Classic application, and it might not have had a major release in a while, but it works, and is highly usable, especially for people like me, with a huge archive of email messages.

On the Windows side, a new version of Eudora was released late last year. From what I’ve read on the Eudora discussion forum, Qualcomm is working on an all-new release of Eudora for Mac OS X, which will bring a great many improvements, including one that I’m eagerly anticipating, use of the OS X Address Book to maintain the email contact list, instead of Eudora’s nicknames list (which is also confusingly called Address Book in Eudora, but it used to be called Nicknames in earlier versions, so that’s what I’ll call it here).

But, Eudora 7 for OS X is apparently behind schedule (it was supposed to start appearing in beta in the fall of 2005), and not having that feature is driving me nuts. Eudora can already read addresses out of Address Book, so all I need to tide me over is a way to easily add a new sender to the Address Book.

I looked for a while to find an existing AppleScript to add a Eudora sender to the OS X Address Book, but as far as I can tell, nothing exists. Indeed, it looks like people stopped writing AppleScripts for Eudora years ago. But by stitching together ideas and techniques from old scripts, scripts for Apple Mail and Address Book, and some new code, I was able to create a script which pretty much duplicates Eudora’s Make Address Book Entry command, except sticking the new entry in the system level Address Book.

The distribution includes a Readme file with much more detail, but here’s the basics: To install, download and decompress the script distribution archive. Then move the script file to your ~/Library/Scripts/Applications/Eudora folder. To use it, select a message in your Inbox, or open a message, which is from someone you’d like to add to Address Book. Choose Add Sender to Address Book from your Scripts menu. Edit the sender’s name and address in the dialog, click Add to Address Book, and voila, Address Book should come forward with the new entry displayed. Add further information to your contact there, if you wish.

There are a number of limitations to the script; see the ReadMe file for details. Hopefully this will be useful to someone besides me!

Michael Tsai brought to my attention that QUALCOMM is rewriting Eudora to update it to the latest Mac OS X technologies, etc. While it is exciting to know that Eudora for Mac OS is still supported by QUALCOMM, and even being modernized, I hope that QUALCOMM is appropriately cautious about making gratuitous UI changes. It may not be pretty, but the interface is highly usable.

In the three or four years I’ve been fighting unwanted e-mail messages with better tools than the Delete key I’ve tried almost a dozen different tools. This is a quick (ha!) survey of the ones I’ve used, and why I don’t (or do) still use them.

My very first anti-spam tool was something called Mailfilter. I used it for my personal e-mail on Mac OS X, wrote about it here, and almost immediately afterwards lost a non-spam message to an aggressive keyword match. That was the end of Mailfilter. I can’t even remotely recommend it, as it’s just not intelligent enough (strict, single expression matching), and had zero safety net.

My next attempt at a solution was a utility called SpamFire. Like Mailfilter, it is a “pre-filter,” which means it would run before my e-mail client, download my mail, and skim out the spam. Unlike Mailfilter, it actually saved the trapped messages, so if it made a mistake, I could recover the message. It had plenty of other differences from Mailfilter, which I wrote about previously, and which made it so useful that it became the first anti-spam tool I paid for. But in the end I switched to a different tool because SpamFire was separate from my e-mail client, and that made it cumbersome to use.

With Q1-2004 coming to a close, I thought I’d take a look at my spam situation, which has been escalating out of control. Since 12:01am January 1, 2004 I have received 22,255 spam messages via e-mail. That’s more than 250 a day, every day, for the last 89 days. Earlier in the year, the daily average was lower, which means that in the last couple weeks it’s gone well above 250 per day. In spite of these numbers, I have two things that give me hope.

QUALCOMM’s Eudora has been my e-mail client of choice for nearly 10 years, and last week a major new version shipped, Eudora 6. My primary concern before upgrading was whether and how my other anti-spam tool, Spamnix, would work with the new version, especially with the new SpamWatch feature. I’m thrilled to report that Spamnix works fine with Eudora 6 (for Mac OS X), and that Spamnix + SpamWatch is more effective than either tool alone.

Today I set up Mozilla Thunderbird, the new e-mail client that’s coming out of the Mozilla project. I wanted to give it a whirl, because I’m looking for a new e-mail client for Rochelle. She’s been using Netscape 4.7 to manage her e-mail, and it’s becoming more and more inadequate.