Mailsmith 2.1.2 Release Notes
This page documents all feature enhancements and bug fixes included in the Mailsmith 2.1.2 release. For information on changes made in previous versions, please see the release notes archive.
Additions
The following features and enhancements are new for Mailsmith 2.1.2:
- You can now integrate Unix tools into the mail downloading process, by using the new “Run Unix Command on Each Received Message” option in the Filtering preferences. In the associated edit field, enter a Unix command which will be invoked for each message that is downloaded from a POP server. The command is run before Mailsmith’s own filters are applied, and before any spam checking takes place.
To illustrate, suppose you wanted to use BogoFilter to process your incoming mail.1 After building and installing BogoFilter, you turn on the “Run Unix Command…” option and enter this command line:
/usr/local/bin/bogofilter -p -e -up. Each message downloaded from the POP server will be run through BogoFilter, which as part of its operation will modify the input message, and spit it back out with an “X-Bogosity” header added. You can then use the “Honor SpamAssassin and BogoFilter Headers” option (Spam Handling prefs) to route the message appropriately.
1: This is only an illustrative example; since SpamSieve is bundled with Mailsmith, it’s more likely that you’d use the built-in SpamSieve integration for spam filtering.
If you choose to hook up a Unix command to the downloading process, you must observe the following rules:
- p. The downloaded message data is available on stdin, and each line is CRLF delimited.
- If the command chooses to modify the message data, it must write a complete and well-formed message to stdout, and each line of the output data must end with CRLF. Conversely, Mailsmith will assume anything the command writes to stdout is replacement message data, and it will attempt to parse it as such.
- If the command writes no data to stdout, or it returns a nonzero exit code, Mailsmith will use the original downloaded message data.
- The “Spam Handling” preferences have been reorganized. There is a new “master” switch: “Enable Spam Detection”. The old “Use SpamSieve” switch is subordinate. A new switch, “Honor SpamAssassin and BogoFilter Headers”, allows Mailsmith to recognize specific headers set by these two popular server-side spam-filtering utilities.
- Mailsmith no longer overrides SpamSieve’s internal training preferences, so the “Train the Spam Detector” setting has been removed from the “Spam Handling” preferences.
- When using the “Mark as Spam” and “Mark as Non-Spam” commands, Mailsmith provides more complete information to SpamSieve, to improve accuracy.
- Made a change to the interaction with SpamSieve; the results should be a small increase in performance and increased accuracy.
- Send Now” and “Queue for Sending” on the Message menu are no longer dynamic. This avoids confusion that ensues when one of them has a keyboard equivalent and the other doesn’t, or if they have different keyboard equivalents.
- Shutdown items are now run after all windows have been closed, and now only if the application is actually quitting. Previously, shutdown items were run before all windows were closed, and were run when the application was told to quit (either by the Quit menu command or via the scripting interface), regardless of whether the application quit or not. Thus, if you have items that you want to run as the immediate result of a Quit command, you should write a menu script attached to MailsmithQuit.
NOTE: shutdown items were frequently used to quit SpamSieve if it was running. This is no longer necessary, since Mailsmith quits SpamSieve for you if necessary.
- POP and SMTP server port numbers can now be set through the scripting interface:
pop server port SMTP server port
- The “Advanced Query” window is gone. In its place is the “Advanced Query…” dialog box, which has a number of advantages, one of which is that it now automatically chooses the mailbox that’s selected in the front window’s mailbox list (if the front window is either of the Mailbox List or Mail Browser).
- When the keyboard focus is in the “From” field in an outgoing message that you’re composing, you can use the Up-arrow and Down-arrow keys to switch between accounts.
- The contextual menus for addresses in the mail status bar (including items in recipient lists) now provide the option to copy just the address (without the name) to the clipboard.
- There’s a new setting in the Enclosures preferences so you can choose the folder in which Mailsmith will store extracted enclosures. (This applies to enclosures extracted with the “Save As” button in enclosure lists, as well as the “Extract Enclosures” filter action.)
- A “Startup” section has been added to the Preferences window, which controls what Mailsmith does when starting up (and when you click on its Dock icon). So, for example, if you want Mailsmith to open the Mail Browser when clicking on its Dock icon, set the appropriate preference (but note that the startup action is only run when no other windows are open).
- The “Live Scrolling” setting in the Mail List prefs has been consigned to the dustbin of history; live scrolling is now always on. (Note that this resolves case and similar reports regarding not being able to scroll to the top of the list by dragging the scrollbar thumb.)
- When creating new ~/Mail and Mail/Mailsmith User Data folders, Mailsmith will set their permissions to 700 (user read/write/execute only). This prevents prying by other users on the same machine, though putting your Mailsmith User Data folder on a PGP disk remains the most secure solution.
- When you create a new mailbox, Mailsmith remembers it on the recent-mailboxes popup.
- Mailsmith now remembers the position and size of the last-closed multi-pane Query Results window.
- “Resolve URL” is now “Open URL”.
- There’s a new option in the Warnings prefs, to control whether Mailsmith presents a warning before deleting messages from the POP server using the “Remove from Server” command.
- When importing signatures from a text file (by dropping it on to the list in the Signatures window), the created signatures are now named after the file, rather than all being named “Random Signature 1”, “Random Signature 2”, etc.
- Mailsmith used to give special treatment to lines that began with ”>From ” (including the space) when it came to computing the quote level for text coloring. This was done because many older email clients use the ”>” as an escape, but since it’s hard to tell when this should be done, and since most modern email clients don’t rely on this escaping anyway, we just treat these lines the same as all others.
- Mailsmith now caches relevant mailbox message counts (unread/unsent and total) across launches of the application. This makes it much faster to open the Mailbox List or Mail Browser windows the first time after the application has been launched.
- When bringing up Mailsmith with the Command and Option keys down (the usual Rebuild gesture), the cached message counts are now reset. Note that this occurs even if you don’t choose any mailboxes to rebuild. You should do this after restoring one or more mailbox files from backup.
If desired you can also:
defaults write com.barebones.mailsmith ResetCachedMailboxCounts truep. and then launch Mailsmith.
- Mailbox state and option settings (e.g. “Show Message Count”) are now stored in a separate file in the Mail package, rather than in the Post Office database’s resource fork.
- Fine tuned the object cache in an effort to eliminate paging (because a disk-based RAM cache is really, really useless)
- Adjusted some internal parameters so the object cache won’t shrink below the minimum working set required for a given mail store.
Fixes
The following problems have been corrected in Mailsmith 2.1.2:
- If an error occurs when counting the number of messages in the mailbox being rebuilt (which will happen in the case of a fairly severely damaged mailbox), Mailsmith will now log the condition and start recovering messages until it encounters an error. That way, the mailbox will be rebuilt with as many recoverable messages as possible, rather than being skipped and not being rebuilt at all.
- Fixed bug in which Mailsmith would attempt to generate a signature when sending an encrypted message with an attachment, even if the “Use Signature” check box was turned off.
- Fixed bug in which exporting mailboxes via drag-and-drop generated two identical export files.
- Fixed bug in which the outbox’s unsent count wasn’t cached as it was supposed to have been; this tended to cause performance problems for people who routinely keep multiple thousands of messages in the out box.
- Added “Add Sender to Address Book” and “Add Sender to Address Book&Open” to the menu key table so that they now appear in the “Set Menu Keys” dialog.
- If a database error occurred when selecting a message, the application would subsequently behave strangely. This no longer happens.
- The scripting interface now prevents you from modifying the name of a “special” mailbox (incoming, outgoing, trash, spam, errors), as doing so gives rise to undesirable behaviors.
- When a message is sent, its date sent and received are now set in such a fashion that the change is broadcast to the UI. If you’re looking at the out box sorted by date, you won’t see the list re-sort, but it will the next time you re-view the out box.
- Fixed bug in which the “Notification Enabled” option was turned on for new mailboxes, even if it had been turned off in the New Mailbox dialog.
- Mailsmith will no longer include the “Notification Enabled” item in the mailbox list contextual menu when the “(spam)” box is selected. If you want to use the contextual menu to adjust this property of mailboxes, de-select the spam box.
- Fixed error in recording of “Move to Mailbox” from the contextual menu.
- Fixed bug in which a -8761 error would be reported when dragging a vcard into the recipient list, and the vcard contained diacritical characters.
- Fixed another memory leak.
- Fixed terminology conflict between the “signature” class and property.
- Corrected description of “signature” property for message windows in the scripting dictionary.
- Fixed bug in which setting the “Signature” property of a message window would select the wrong signature in the “Signature” popup menu (and also resulted in the wrong signature being used when sending the message).
- You can now use a object reference to set the “signature” property of a message window (provided that the reference is to an object of class “mail_signature”):
set properties of
to { signature: mail_signature 17 }
- When dragging a text file to the edit field in the Signatures window, Mailsmith will now quietly reject the drag rather than putting up an error alert. (If you want to import signatures from a file, drag the file to the signature list.)
- Mailsmith now correctly interprets the encoded UTF-8 URLs sent by the Apple Address Book when you use the “Send Email” contextual menu item.
- Mailsmith now uses an updated version of the StuffIt engine interface, which fixes a problem with the “Compress with StuffIt” check box being disabled on systems with StuffIt 8.0 or later installed.
- Sound playback now uses something resembling the “Alert Volume” setting, rather than the full output volume.
- If an outgoing message is queued and then sent at a later date, the actual time sent is stored incorrectly, which can cause that message (and others similarly affected) to be sorted out of order when sorting by Date Sent [or by Date (Sent/Received), if applicable].
NB: this fix will not correct the sort order of stored messages, but will prevent the problem from occurring for newly queued messages. To correct the sort order of stored messages, rebuild the “(outgoing mail)” mailbox (or whatever mailbox contains the out-of-order outgoing messages).
- Fixed bug in which deleting nested mail parts didn’t cause the enclosures list to update, and subsequent attempts to delete the item would report a -110 error. (This typically happened when trying to delete an HTML part which was a component of a multipart/alternative.)
- The spelling checker now adjusts its start and end points as necessary to avoid checking partial words if the selection range starts and/or ends in the middle of a word.
- If Mailsmith started SpamSieve, then Mailsmith will quit SpamSieve when you quit Mailsmith.
- The scripting interface will now report an error upon attempting to move a “special” (incoming, outgoing, trash, spam, errors) mailbox.
- When migrating from Claris Emailer, Mailsmith now imports attachments from stored incoming messages (provided that the attached file is still available).
- Fixed bug in which an ad hoc message list (created by a script which assembles an explicit list of messages) would lose its mind when you deleted a message.
- Fixed layout glitch in the sound popup menus given a certain combination of sound files.
- If the contents of /tmp are deleted behind the application’s back, the OS doesn’t catch up, and -43 errors get reported the next time Mailsmith tries to create a temporary file (as when downloading or sending large messages). This has been worked around. Don’t empty /tmp unless you know what you’re doing.
- If an error occurred while bringing up the Mail Browser window, Mailsmith would probably crash when quitting. This should no longer occur.
- When typing text into a term list, the Return key now behaves the same as the Enter key, i.e. it enters the current text and removes focus from the entry item, rather than inserting a literal carriage return.
- Fixed crash in the vCard parser which would occur when bringing in a vCard with large chunks of data (such as an image).
- Fixed bug in which deleting an account didn’t properly tear it down; if it had been set to automatically check for new mail, strange errors would be logged at the auto-check time (or Mailsmith might crash).
- Mailsmith now examines the “disposition” parameter of inline mail parts for the name, if one is not found elsewhere.
- It turns out that although Apple Mail mailboxes superficially resemble the canonical ‘mbox’ format, the data in a mailbox package’s “mbox” file is not a well-formed mbox. When migrating from Apple Mail during initial setup or importing via drag-and-drop, Mailsmith now uses the accompanying index file to reliably identify and import messages from Apple Mail mailboxes.
- Fixed performance problem in which “Send at Check” on a large outgoing mailbox would churn the block cache, leading in turn to SPODs and other antisocial behavior.
- Fixed bug in which files with no Mac file type and creator, but which had a resource fork (e.g. thumbnails in files imported by iPhoto) would not be mapped to their correct MIME type and be sent encoded as BinHex (when using the “Automatic” encoding setting).
- Fixed bug in which Mailsmith would unnecessarily prompt you to save changes to the signature being deleted, and then crash.
- Fixed bug in which the state of the “Sign Message Body” check box was not correctly restored when reopening a draft.
- Fixed a bug where spacebar paging went in the wrong direction in burst digest windows.
- Fixed cosmetic in recipient lists with very long addresses
- The “Paste” and “Paste Quoted” commands are disabled for stored messages (except for drafts)
- Command-arrow gestures now work in the choose-mailbox dialog (invoked from “Other…” in the mailbox popup).
- Mailsmith now gracefully handles the situation in which SpamSieve is replaced (usually by a newer version) while Mailsmith is running.
- When accepting text addresses via drag-and-drop (or other sources), Mailsmith now lops off the trailing CR to avoid confusing the address parser.
- The Quit menu item is once again attachable.
- Fixed bug in which saving enclosures via AppleScript would fail if asked to save to a folder, and would truncate long file names when saving to an explicit file.
- Rearranged items in the Replies preferences to fix cosmetic glitch when switching to another prefs pane.
- Fixed bug in which Mailsmith would sometimes set the wrong default name for the Save As dialog when using “Save As” for a message opened in its own window.
- Mailsmith no longer spins the beachball during database commits. This resolves a report in which Mailsmith would hang when using “Re-Apply Filters” on a large number of messages. Note that as a consequence, a database commit that takes longer than two seconds or so will cause the SPOD to appear; this is not indicative of anything untoward.
- Exploring Mailsmith with Script Debugger no longer causes the Signatures window to open.
- We now serialize access to SpamSieve in order to avoid sporadic -609 errors from occurring when the Mach port used to communicate with it gets too busy.
- If Mailsmith can’t locate the appropriate “auto” filter for a mailbox by ID (possibly because the mailbox’s ID changed), it will now look for the filter by name. This should resolve situations in which the filter criteria in the mailbox “Get Info” window appear to be lost.
- When substituting an IP address for a hostname, we always enclose the dotted-quad in square brackets, as per modern RFCs (like 2821).
- Saving an edited signature no longer loses changes to the “Show in Menu” setting.