Load Images Script Updated for Mac OS X 10.10 (“Yosemite”)

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.

At any rate, you can find the latest version on the Load Images in Apple Mail project page.

Load Images Script Updated for International (Non-English) Use

I’ve updated the [Load Images AppleScript](/link/load-images-applescript) that I use with Apple Mail, to load images in email messages using a keyboard shortcut. This version provides minimal support for internationalization, by making it easy to change the text string on the button that the script looks for and activates.

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.

Load Images AppleScript Updated for Mavericks Mail.app

I’ve again updated the [Load Images AppleScript](/link/load-images-applescript) that I use with Apple Mail, to load images in email messages using a keyboard shortcut. The script is now compatible with Mail.app in Mavericks (Mac OS X 10.9). This post also explains some changes in Mavericks that affect enabling GUI Scripting, required for the script to work.

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.

There are some important changes to the script’s behavior in Mavericks. If you’re using the script with Mac OS X 10.9, you need to give the script permission to control your Mac, and the process isn’t as intuitive or as clear as it could be. Continue reading “Load Images AppleScript Updated for Mavericks Mail.app”

Add a Keyboard Shortcut to Mail’s Load Images Button

The Load Images button in Apple Mail on Mac OS X doesn’t have a keyboard shortcut, and there’s no easy way to add one. This is very annoying. This article shows how to add one, using AppleScript and FastScripts.

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.

AppleScript to Load Images in Apple Mail

Download the Load Images script v1.11, 2021-12-14

The work of the script can be done by a single line that might look like this:

click button "Load Images" of 
    UI element 1 of row 1 of table 1 of scroll area 1 of front window

(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.)

Create the shortcut for the AppleScript

  1. Install and run FastScripts, and then switch to Mail.app.
  2. From the FastScripts menu, choose Open Mail Scripts folder.
    Open Mail Scripts folder menu item
  3. Move or copy the Load Images script into the Mail Scripts folder.
  4. From the FastScripts menu, choose Preferences…, click the Script Shortcuts tab, and add your preferred keyboard shortcut.
    Keyboard shortcut for Load Images AppleScript

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.

Moving to Apple Mail?

Well, after a long year+ of teasing and waiting, it seems that the Cocoa version of Eudora for Mac OS X was a chimera. Today QUALCOMM announced that they are discontinuing commercial development of Eudora, and working with the Mozilla Foundation to move Eudora onto the Mozilla Thunderbird platform.

This announcement comes as something of a shock to me. After holding on waiting 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:

Continue reading “Moving to Apple Mail?”

Add Sender to Address Book

I continue to use and love “Eudora”:http://www.eudora.com/ as my email client. This despite it being a little long in the tooth, and with a visual style straight from 1999. I’ve been waiting for a new version with some new features for a while, and I finally got tired enough of a specific missing feature to do something about it. Here’s an AppleScript to tide me (and possibly others) over.

Update: The latest version of the script is 1.1, released 15-Nov-2006. Download link below. See the ReadMe 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.

!/images/clickscriptlarge.jpg(Download the Add Sender to Address Book AppleScript)! “Download the Add Sender to Address Book AppleScript”:/resources/dist/Add-Sender-to-Address-Book.zip

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!

Cocoa Eudora?

“Michael Tsai”:http://mjtsai.com/blog/2005/05/02/eudora-cocoa/ brought to my attention that “QUALCOMM is rewriting Eudora”:http://www.eudora.com/techsupport/kb/2654hq.html 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.

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.

Continue reading “Cocoa Eudora?”

Personal Survey of Anti-spam Tools

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 survey of the ones I’ve used, and why I don’t (or do) still use them.

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.

Continue reading “Personal Survey of Anti-spam Tools”

Zero Inbox Items!

It’s pretty hard for me to believe, but right now my e-mail Inbox has zero items in it. I think the last time this was true was about 2 minutes before I first got e-mail.

Zero E-mail Inbox Items!It’s pretty hard for me to believe, but right now my e-mail Inbox has zero items in it. I think the last time this was true was about 2 minutes before I first got e-mail. It’s taken quite a bit of effort, and a lot of letting go, to get to this point. (And I suppose I cheated by filing a bunch of stuff, when I should either read and delete, or just delete.)

How long will it last? Well, I’d like to make this permanent, and follow procedures similar to those advocated in the Good Experience guide to Managing Incoming E-mail. That’s even more discipline, but now that I’m at zero items, it becomes a whole lot easier, because I can tell instantly if I am getting lazy.

Spam Count So Far This Year

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.

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.

First, SpamSieve is an amazing anti-spam filter that integrates well with Eudora. It’s far more reliable than the built-in SpamWatch feature that debuted in Eudora 6, primarily in the area of false positives (real messages mistakenly filtered out):

Filtered Mail

13565 Good Messages
22255 Spam Messages (62%)

SpamSieve Accuracy

21 False Positives
197 False Negatives (90%)
99.4% Correct

SpamSieve is award-winning software for Mac OS X, and it integrates beautifully with both Eudora and Mailsmith, the two best e-mail clients for the platform. I am getting to the point where I trust SpamSieve enough to just purge filtered e-mail without reviewing it.

Without SpamSieve, I would be going insane because of spam.

The second thing I have on my side is that more than half of my spam comes to one e-mail address, the oldest e-mail address I still use. If I were able to kill it, it would instantly cut off more than half of the spam. But, it’s the first permanent e-mail address I ever got, using the excellent pobox.com mail forwarding service. I’ve had it for almost 15 years. Because it’s so old, I’m extremely reluctant to part with it — what if that’s the only address a long lost friend has?

Well, it looks like I can have my cake and eat it too. pobox.com just introduced new spam filtering controls and services, which are far more effective than the old filters that were enabled on my account. Last night I turned them on, and already the amount of spam coming into my pobox.com e-mail address has dropped to almost zero.

I wouldn’t exactly call this the turn of the tide, but it’s certainly encouraging. Because it’s my only hope to avoid having to look at 100,000 spam messages in 2004, which is where the growth curve points, if there isn’t change.

I’ll let you know how it’s looking when Q2 is over.

Eudora 6 with SpamWatch

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.

Note: Although still terrific tools, and in the case of SpamWatch free and built-in, I no longer use either Spamnix or Eudora’s SpamWatch, having found more effective tools. See my Personal Survey of Anti-Spam Tools for more details and recommendations.

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. I’m usually of the “fools rush in” school of thought with regards to software updates, so I waited to see what people were saying about the upgrade (MacInTouch is a great resource for these “reader reports”).

But it’s been a week, and nary a peep. And with the amount of spam I receive continuing to grow, I really wanted to try the new SpamWatch feature. So, after doing multiple backups, I upgraded myself over the weekend.

My primary concern was whether and how my other anti-spam tool, Spamnix, would work with the new version, especially with the new SpamWatch feature. Unlike a lot of other third-party anti-spam tools, Spamnix is a Eudora plug-in, and so runs “in-process” (i.e., inside) with Eudora. [Update: SpamSieve 2 just shipped, and now also includes a Eudora plug-in. Very cool!] This makes it more efficient, but also (in theory) more susceptible to compatibility issues.

I’m happy, nay, 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.

I love the way that SpamWatch and Spamnix tag-team to combat spam. SpamWatch gets first crack, before other filters or plug-ins look at the message, and if the message’s score is over the spam threshold, it will be filtered into the Junk mailbox, with no further processing. (Qualcomm designed SpamWatch to run first, and you can’t change that.)

If a message doesn’t get caught by SpamWatch, then Spamnix takes a look at it, and if Spamnix decides it’s spam, it’ll go into Spamnix’s own spam folder (on my system named “_Spamnix”; note the initial space to influence sort order). These messages, nicely separated and usually all spam, are prime candidates for further training for SpamWatch.

I receive hundreds of spam messages a day, but after two tiers of spam filtering very little spam gets to my Inbox — so far only a couple a day, with very little training of SpamWatch yet. The few that have made it through have gone straight back to SpamWatch for training. :-)

What is fascinating about this process is the progress that SpamWatch has made, in less than 4 days of processing my mail. The first time I downloaded a sizeable batch of e-mail (more than 50 messages), most of the spam got through SpamWatch, and caught by Spamnix. After training SpamWatch with those messages, and then downloading another big batch a few hours later, the ratio went the other way: SpamWatch was now catching most spam before Spamnix got a chance to look at it.

I’m still glad to have both layers. Spamnix was extremely effective at catching my spam, prior to SpamWatch being added to the mix, and it’s still catching spam that SpamWatch is missing. So overall, I am doing better in my personal war against spam (though it’s important to remember that this is defensive action only).

About the only downside of introducing SpamWatch as a new layer of anti-spam defense is that right now it’s relatively untrained, and generating a larger number of false positives (non-spams filed in the Junk folder) than I’m used to. SpamWatch ships “pre-trained”, meaning it already has a database of spam words to run against, but this list is generic, not customized to my own e-mail traffic. So it’s not that surprising that some of Rochelle’s e-mails are getting tagged as spam. My previous experience with Bayesian filtering is that it rapidly adjusts as you correct its mistakes, so I’m confident the false positives will go down in a week or so.

At any rate, I’m quite happy with the new version, especially since I was still in my 12 month support period from my last upgrade, so version 6 was free. Recommended, even if you have to pay for it.

Trying Thunderbird

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.

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 that application is getting old, and has a number of issues, mostly having to do with the fact that it’s now completely unsupported software. Also, Thunderbird has best-in-class spam controls, which is very important, since Rochelle is beginning to receive more and more spam.

Problem is, I haven’t found a better e-mail client than Netscape. Outlook and Outlook Express are out of the question. They are deeply insecure applications, and the number one vector for spreading computer viruses. (Mark my words, in the next 12 months there will be a malignant virus that will wipe Outlook users’ hard disks clean. It’s just a matter of time.) They are also spam-friendly applications (though an Open Source project, SpamBayes, gives Outlook robust anti-spam tools). People who voluntarily use Outlook or Outlook Express are stupid. IM!HO.

I actually bought Eudora Pro for Windows for Rochelle’s computer, on the basis of my experience using Eudora on the Mac for the last decade. But Eudora for Windows uses the obsolete Windows MDI interface paradigm, where all of the windows are contained in one “parent” window. It’s maddening, and a relic from the late 80s. The application has a number of other quirks, differences from the Mac version, to the point where I found it unusable.

So I’m evaluating Thunderbird, to see if it’s ready for Rochelle. I plan to use it regularly over the next few weeks, configured to manage one of my less-used e-mail accounts.

It’s a good thing it’s a less-used e-mail account, because already in my first 15 minutes, it’s clear that Thunderbird is still pretty raw (giving double meaning to the “trying” in this post’s title). Basic e-mail functionality is there, and the application seems solid (no crashing). This is the result of Thunderbird’s gestation as part of the Mozilla Suite. You can use, and even rely on Thunderbird. But there are a lot of fit-and-finish issues, which seem like small things, but add up to making it unsuitable — unenjoyable — for daily use.

Some examples:

  1. The first thing I want to do when setting up an e-mail client is turn off automatic downloading of HTML images. (Loading images in a spam message can tell the spammer your e-mail address is valid, resulting in a lot more spam.) There is a control for this in Thunderbird’s preferences, hidden a little too deeply (Advanced -> Privacy -> Block loading of remote images), but easily checked once you find it. So far so good.

    The problem is when you get messages with graphics from valid senders. The graphics don’t display, as per the general preference, but there’s no way to override that for the one valid message. This renders some messages unreadable.

    Solution: a toolbar button in the message window to download that message’s graphics.

  2. The default font settings render many messages a blur, with the text far too small to be legible. (This is on Mac OS X, it might be better on Windows or Linux.) The “minimum size” preference seems to do nothing, and the View -> Text Zoom menu option does not appear to be a global setting. I finally solved the issue by changing my Serif font setting to Lucida Grande, a sans serif font that is highly readable, even at small sizes. But all in all, there are far too many settings and options that affect text size and font choice, and it’s not at all clear what does what, how they interact, or how to accomplish specific goals with regard to text rendering.

    It reminds me of Don Norman’s description of refrigerator / freezer settings in The Design of Everyday Things. In most home refrigerators the freezer and refrigerator compartments share a single compressor, the key component of the cooling system. Because it’s shared, making changes to the freezer setting, e.g., setting it lower, can affect the refrigerator setting, making it lower too. So you turn up the refrigerator knob to keep your lettuce from freezing, but that makes the freezer less cold, and your ice cream oozes out of the carton. You have to fiddle and fuss to finally get to a balance you can live with.

    It’s a ridiculous thing for an end-user to have to deal with, and it happens because the designers give you controls that affect the system’s internals directly, instead of letting you choose a goal state (e.g., a specific temperature for each compartment), and have the system figure out how to achieve it. Product designers and programmers do this because it’s easy to build, and because they don’t see anything wrong with it. The problem is that users don’t think like programmers, and have trouble figuring things out.

    Thunderbird is supposed to be a simplified, easy-to-figure-out e-mail client, vs. the everything-but-the-kitchen-sink e-mail client in the Mozilla Suite. They have a ways to go with the text settings.

  3. Thunderbird makes some assumptions about my e-mail reading workflow that are wrong. If I open a message, read it, and then delete it, Thunderbird automatically opens the next message, in a window sized and positioned exactly like the first message.

    First of all, while this straight-through workflow may work for some people, it’s deeply distracting to me. I pick and choose my e-mails, working via priority order (or whim), not on the order the messages arrived. I suspect most sophisticated e-mail users do this. Auto-opening a message I would prefer to defer looking at just means I have to close it, and then right-click to mark the message as Unread. Pain in the ass. There appears to be no way to affect this behavior.

    The second issue with this is that Thunderbird’s screen redraws are extremely efficient. There is zero flicker when one message disappears and the other appears. Because the new message appears in the same place and is the same size, only the text changes. If you’re looking at a new message that is visually similar to the previous one — say, two text messages — you might not notice it was new, and think that you didn’t hit delete at all. Guess what you’d do then.

These are three examples, but I’ve seen many other issues. I can hold my nose and manage this low-priority e-mail account, but it’s clear that Thunderbird has a few more months of development in front of it before I’ll give it to Rochelle.