applescript

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.

{ Comments on this entry are closed }

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.

{ Comments on this entry are closed }

Load Images AppleScript Updated for Mavericks Mail.app

by Michael Alderete on 11/25/2013

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. Read the rest of this entry (519 words) »

{ Comments on this entry are closed }

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.6, 2014-12-31

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.

{ Comments on this entry are closed }

Add Sender to Address Book

by Michael Alderete on 2/6/2006

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.

Download the Add Sender to Address Book AppleScript Download the Add Sender to Address Book AppleScript

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!

{ Comments on this entry are closed }