Release Notes
Read the Introduction if you are new to MailMate (or if you have not read it before). Please remember that MailMate is shareware and that future development depends on your support. If MailMate is not the email client of your dreams then it would be greatly appreciated if you took the time to write a short note about your dreams to mm-feedback@freron.com.
If you bought MailMate in the Mac App Store and you would like to have a regular license key then write an email with your request using “Help ▸ Send Feedback…” within MailMate. It is important you do it with the Mac App Store version of MailMate.
Revision 3142 (Friday, December 14, 2012)
- Fixed problem with code signing which made MailMate repeatedly ask for access to the keychain (it did not affect all users).
- Fixed problem with any malformed HTML messages containing a
cid:
URL with no value.
- Tweaked the “Prefere Plain Text” feature such that a HTML body part is automatically shown if the plain text body part is empty.
Revision 3139 (Wednesday, December 12, 2012) – Version 1.5.1
Tagging
This is the first version of MailMate with a user interface for tagging. Details can be found in the manual, but you can easily try it out by simply hitting t
in the message viewer. Also note the new “Tags” preferences pane.
The implementation of tags in MailMate is based on IMAP keywords.
Other changes
- When failing to encrypt (OpenPGP) a message to an untrusted recipient then “Trust Once” is now provided as an option (when trying to send).
- Untrusted S/MIME certificates are now editable (when viewed using “Show Details”), that is, the trust settings can be changed.
- Holding down ⌥ can be used to expunge selected messages immediately (instead of moving them to the trash). An alert is shown which can optionally be disabled.
- Added the ability to change the type of mailbox count when multiple mailboxes are selected.
- Suppression checkmark added to the window shown for “Empty Mailbox” actions (available for “Deleted Messages” and “Junk”).
- Improved handling of first responder state when adding/removing views. This is an improvement for both tagging and searching, for example, after tagging the focus returns to the view which had focus before opening the tags editor.
- Now wraps headers very nicely at 78 using field specifiers to properly tokenize headers. Lines can be longer if unable to wrap nicely, but lines are never longer than 998 characters. These are
- Workaround for Gmails implementation of IMAP keywords which allows the ’]’ character. This is non-standard, but MailMate now handles it gracefully.
- Refactored part of the window layout system.
- Fixed IMAP bug triggered when APPEND’ing messages with non-standard flags on a server with no support for non-standard flags.
- Fixed crash bug when using
mailto:
with attachments (via AppleScript).
- Fixed OpenPGP encryption-related crash bug.
This release also includes a workaround for a problem under 10.7.5 which would make MailMate and the authorization interface to the keychain hang when changing the trust settings of a server certificate. The problem is related to code signing.
Revision 3095 (Thursday, November 8, 2012) — Version 1.5
This section covers all changes since version 1.4.3 of MailMate which was released as a public beta in July. It is followed by a section describing the changes since the latest public release which was version 1.4.2 (r2818/r2819).
Note that the certificate used for code signing has changed since version 1.4.2 and you are going to be asked about allowing MailMate to access passwords in the keychain. This should only happen once for each password.
Version 1.5 is the first version of MailMate with support for OpenPGP and S/MIME. To be able to view/verify and/or compose messages using S/MIME or OpenPGP you need to enable it in the Security preferences pane (⌘,).
Various features/changes
- Updated to Growl Framework 2.0. This means MailMate now supports Mac OS X Notifications on Mountain Lion
- Added support for colored flags (compatible with Apple Mail). This also works over IMAP for any server with support for custom IMAP keywords (the majority of servers). The primary flag color is now red in order to match Apple Mail. Default key bindings for setting colored flags is capital F followed by 1-6 (no visual support for setting these flags yet).
- “Download Linked File” (or Image) is now available in the context sensitive menu of the message view.
- Improved performance of HTML to text conversion by replacing
html2text.py
with libxml2
.
- Removed all dependencies on the BWToolkit framework. The related changes include a new status bar below the mailbox outline.
- Added a hidden preference (
MmIgnoreDeliveryAddresses
) to ignore delivery addresses when deriving the identity to be used for a reply. Removed the MmAlwaysTrustDeliveryHeaders
hidden preference.
IMAP
- Fixed a problem related to case sensitive IMAP servers. It only affects installs of Mac OS X on case insensitive disks, but that is also the default. MailMate would terminate when trying to move messages between mailboxes which only differed in casing.
- Workaround for Gmail servers replying with
* BYE \[UNAVAILABLE\]
for a login attempt.
- Workaround for servers failing to provide an EXISTS response after APPEND (experienced with an IMAP server named SmarterMail).
- Fixed various issues regarding saving messages in the drafts folder on an IMAP server. It now has better performance and it may, indirectly, affect problems with some non-standard servers (Gmail) with respect to the location of sent messages.
Bug fixes
- Workaround for a bug in OS X 10.8.2 triggered when using
AESendMessage
to send AppleScript events. This affected users of SpamSieve. Every message sent to SpamSieve would hang and then time out (after 2 minutes) making MailMate seem extremely slow.
- Local references in HTML messages now work correctly (scrolling to the correct location within the message).
- Fixed placement of caret when selecting “No Signature” in the composer (when using “Top” posting).
- Updated
sundown
(Markdown converter) to no longer auto-enumerate numbered lists since that does not work well for the plain text part of emails.
- Forwarding a message with a misplaced calendar attachment (
text/calendar
within multipart/alternative
) now works correctly, that is, the calendar item is attached to the forwarded message. (This is a workaround for a bug in other email clients.)
- Fixed “New Message” bug when using the dock icon menu: Window was not taken to front.
- Fixed visual glitch in the date column of the messages outline when expanding/collapsing message threads.
- Fixed visual glitch when opening/closing the find banner view (⌘F).
Debug
Three new debug variables have been added to make it easier to solve various problems:
defaults write com.freron.MailMate MmDebugSecurity -bool YES
defaults write com.freron.MailMate MmDebugSend -bool YES
defaults write com.freron.MailMate MmDebugAddressBook -bool YES
The first one may be of interest for anyone trying out the new support for S/MIME and OpenPGP. The others are mainly introduced to track down problems reported by a few users.
Revision 2980 (Thursday, July 26, 2012) — Version 1.4.3
This version of MailMate was only released as a public beta. The following covers all changes between versions 1.4.2 and 1.4.3.
Various features/changes
- Prepared for Gatekeeper (Mountain Lion security feature) by signing MailMate with a Developer ID certificate.
- Experimental decryption/verification of PGP messages both with and without the use of MIME body parts. Note: Currently, decrypted data is always added to the database. See the manual pages about hidden preferences for details (and how to enable this feature).
- Added an action named
selectWithFilter:
to be used for key bindings. It can be thought of as a generalization of selectAll:
and deselectAll:
since it can be used to select any set of messages matching a filter. See the manual page about custom key bindings for more information.
- When using “Format ▸ Show Fonts” it is now possible to alter the table line height used in the mailbox outline and the messages outline. For the record, the changeable fonts are: Mailbox outline, messages outline, message view (normal and raw mode font), and composer font.
- Dragged messages (to the Finder) are now named using their subject. Configurable using hidden setting: MmFilenameFormatString.
- Dragging messages out of MailMate is now handled better using the UTI
public.utf-name
.
- Added ⌥F2 shortcut to open the context sensitive menu in the editor of the composer. The primary use case of this is to easily see and select spelling suggestions. This functionality can also assigned to a different key using custom key bindings (the selector is named
showContextMenu:
).
- No longer displays multi-page PDF documents inline (done by heuristically looking for the number of pages in PDFs).
- Added a “Show Fonts” button to the General preferences pane in order to make it a bit more obvious that font changes are possible.
- Added help button to the Counters preferences pane.
- Added a cancel button (small x in the right side) to the text field used by search conditions (only for some comparison methods).
- Inlined images (
cid:
) in HTML messages can now be dragged.
- Now parsing HTML body parts for the database when it differs (considerably) from the plain text body part alternative (or when such alternative does not exist).
- Parsing of
Message-ID
headers now allows spaces in the domain part since such headers are generated by some buggy software.
- Now validating the domain part of the
Message-ID
created for new messages. Replaced by mailmate-app.com
if it does not validate.
- No longer logs warnings about missing subparts of MIME multiparts when only headers have been fetched.
- Threads in search results are now auto-expanded when fewer than 500 messages are found.
- Add key bindings file with Postbox key bindings (created by Ian Beck).
- Now remembers scroll position for selected message(s).
- Changed the composer layouts: They are now horizontal/vertical variants of the preview layout. By default the preview is shown when markup languages are enabled, but it can always be explicitly enabled/disabled (⌃⌥⌘P).
Optimizations
Multiple aspects of MailMate have been optimized. This should be noticeable for most users, in particular users with a large number of messages and/or mailboxes. Optimizations include:
- faster startup time
- faster searches (in particular when searching addresses, subjects, or body text)
- messages outline sorting (in particular when sorting on addresses or subjects)
- synchronization of IMAP accounts
- faster when moving forward/backward in search history
Completion of recipient names/addresses
- MailMate now supports searching LDAP servers when autocompleting names/addresses in the composer window, but there is currently no GUI for this feature. Read more about it in the manual page about “Hidden Preferences”. Feedback is welcome.
- Added a comma to all “lastname, firstname” completion suggestions.
- Fixed bug in the sorting of possible completions shown.
Extended mailto
URL scheme to be used via AppleScript
It is now possible to create new messages in MailMate with attachments using AppleScript. It is also possible to send these messages without bring MailMate to the front.
For a long time, MailMate has supported the mailto
URL scheme. For example, the following link creates a message with recipient, subject, and default body text:
mailto:me@example.com?subject=Test&body=Body%20text
It can be used within HTML pages as a link, but it can also be called directly, for example, using the open
command in the Terminal:
open "mailto:me@example.com?subject=Test&body=Body%20text"
Using the open
command it is also possible to specify the application to be used when creating the message:
open -a MailMate "mailto:me@example.com?subject=Test&body=Body%20text"
Otherwise, the default email application is used (this can be configured in the General preferences pane in Apple Mail or MailMate).
MailMate now extends the mailto
syntax to include some additional special parameters. These are attachment-url
and send-now
. For security reasons they are ignored except if the URL is provided via AppleScript. It can be done as follows using a single line in the Terminal:
osascript -e 'open location "mailto:me@example.com?subject=Test&body=Body%20text&attachment-url=file:///full/path/to/file.txt&send-now=yes" with trust'
Note the important with trust
part of the AppleScript command. This is needed to make sure MailMate does not ignore the special parameters.
In practice, all of this means that MailMate can now be integrated with applications which need to send messages with attachments. Examples for iCal and BusyCal are provided, but it is currently a bit tricky to use them since integration requires the developers of the applications to add scripts for MailMate (and don’t ever expect that to happen for iCal). For now, the scripts can be enabled as described below using the Terminal (assuming all applications are in /Applications
).
iCal:
mv /Applications/iCal.app/Contents/Resources/Scripts/Mail.scpt /Applications/iCal.app/Contents/Resources/Scripts/MailBackup.scpt
ln -s /Applications/MailMate.app/Contents/SharedSupport/Other/iCal/Mail.scpt /Applications/iCal.app/Contents/Resources/Scripts/
UPDATE: The above does not work on Mountain Lion since Apple no longer uses the Mail.scpt
file. It is unknown whether or not a workaround exists.
BusyCal:
mv /Applications/BusyCal.app/Contents/Resources/Scripts/MailAttachmentScript.scpt /Applications/BusyCal.app/Contents/Resources/Scripts/MailAttachmentScriptBackup.scpt
ln -s /Applications/MailMate.app/Contents/SharedSupport/Other/BusyCal/MailAttachmentScript.scpt /Applications/BusyCal.app/Contents/Resources/Scripts/
UPDATE: The above does not work for BusyCal 2.0. It might work if the script is placed in the following location (not tested): /Volumes/Mountain\ Lion/Users/benny/Library/Application\ Scripts/com.busymac.busycal2/com.freron.MailMate.scpt
Note that updating iCal/BusyCal or moving MailMate is going to break the symbolic links created above.
An example script for LaunchBar (nightlies) is also included. It should be used with the “Preferences ▸ Actions ▸ Options ▸ Create Emails with” preferences item. The script is located here: MailMate.app/Contents/SharedSupport/Other/Launchbar/SentHandlers.scpt
. LaunchBar should then allow you to create an email with any selected files attached (selected in the Finder).
IMAP
It is now possible to manipulate the use of namespaces for each IMAP account. This is important for some users, especially those needing to specify what is known as an IMAP prefix in most email clients (most often this is not necessary). The feature is described in the chapter about “Hidden Preferences” in the manual.
Gmails IMAP server does not report changes to IMAP keywords/flags including its read state (when watching for changes in the INBOX). As an experimental workaround, MailMate can now be told to regularly check for keyword changes. You can try it by running the following command in the terminal:
defaults write com.freron.MailMate MmEnableKeywordsCheckInIDLEForGmail -bool YES
Other IMAP related changes are:
- Improved heuristic for guessing standard IMAP mailboxes when they have not been explicitly set.
- Moved “Edit Subscriptions…” to the IMAP account editor.
- Fixed issue with “Edit Subscriptions”. It did not work correctly if the IMAP username/hostname of the account had been changed.
- Fixed behavior for IMAP servers advertising UIDPLUS without support for UIDs in APPEND/COPY responses.
- Workarounds for Courier 2004 server (GoDaddy). One workaround for flags which the server does not report correctly immediately after changing them and another workaround for UIDs not being properly detected after an APPEND/COPY due to failed SEARCHes for
Message-ID
s. Also fixed a more general potential message duplication problem when appending.
- Improved behavior for servers (Gmail) with sudden NO rejections on fetch queries combined with termination of the connection (BYE).
- Fixed the subscriptions editor to also use the namespaceResponse hidden preference.
- Reduced maximum IMAP command line length to work better with servers with a relatively small limit on command line length.
- Fixed an issue with uploading messages (APPEND) triggered when one of them (and not the first one) had no or non-standard IMAP keywords.
Experimental dual mode
Introduced a new layout class to handle multiple modes in a window. This is used to provide a dual-mode layout in which one can switch between list mode and message mode. To control it, a key binding is needed for nextMode:
. To enable this layout, you need to do the following:
mkdir -p ~/Library/Application\ Support/MailMate/Resources/Layouts/Mailboxes/
cp /Applications/MailMate.app/Contents/Resources/Layouts/Mailboxes/dualMode.plist ~/Library/Application\ Support/MailMate/Resources/Layouts/Mailboxes/
And then edit dualMode.plist
by removing the enabled = 0
line.
Bug fixes
- Fixed problem with messages erroneously being shown as part of the currently displayed mailbox (messages for which IMAP keywords had changed).
- Fixed: For convenience dock/menu-counts are shown when editing counters even if they are 0. Unfortunately the 0-counters were not removed when closing the preferences window.
- Now properly updates the search result when selecting something in the popup for an ‘is/is not’ comparison.
- Better detection of URLs when <> and punctuation is involved (when converting from canonical text to HTML).
- Fixed sorting of the Spam Score column in the messages outline.
- Fixed some minor memory leaks related to internal conversion of property lists.
- Fixed problem with repeated autosave requester after rebuilding database.
- Changed wording in the headline of the password requester to avoid confusion about the username used for the account.
- Fixed various issues/bugs related to the history of searches.
- Fixed termination of MailMate triggered when forwarding certain types of messages.
- Fixed termination of MailMate related to clicking on items in the headers view.
- Changed how
cid:
references are handled. It should now work better with non-unique or malformed Content-ID
headers. In practice, certain HTML messages with embedded images are now shown correctly even though they contain bad Content-ID
headers.
- Fixed termination of MailMate when using the “File ▸ Open Message” menu item. It was not correctly enabled/disabled.
- Fixed termination of MailMate related to “Show Fonts”.
Revision 2818 (Tuesday, March 27, 2012) — Version 1.4.2
Version 1.4.1 of MailMate unfortunately introduced a performance bug which under certain circumstances can make MailMate practically unusable (high CPU and disk usage). The problem is particularly bad with large mail stores. Thanks to the users helping identify and solve this issue. It is strongly recommended to update to version 1.4.2. (Note that version 1.4.2 works on Mac OS X Leopard as well.)
From address derivation for email aliases
Derivation of the From
address for replies has been changed. Until now it has been based on a heuristic using the X-Original-To
header and other similar headers, but examples from users have shown that this approach does not work well in general. As a replacement for the heuristic, an optional account setting named “Address Pattern” has been introduced. It is disabled by default. The value for this option must be a regular expression which describes the format of any aliases for the account. Read more about this in the account settings chapter in the Help Book (a help button has also been added to the account settings window).
Change focus using key bindings
Introduced makeFirstResponder:
for key bindings. This can be used to bind a key to directly activate a view. The identifiers for the views can be found in the layout files, but here are the most likely use cases:
"o" = ( "makeFirstResponder:", "mainOutline" );
"m" = ( "makeFirstResponder:", "messageView" );
"M" = ( "makeFirstResponder:", "mailboxesOutline" );
Other changes
- Improved headers editor for recipient addresses in the composer. Previously, multiple tokens were created if pasting text in the middle of an existing token or if tab’ing when the cursor was in the middle of an existing token.
- IMAP mailbox states are now cached. This makes scrolling in the mailboxes outline smoother.
- Bounces “Download” folder instead of opening it when saving an attachment.
- Fixed “Edit ▸ Find ▸ Mailbox Search” menu item. It now works correctly when selected using the mouse (previously it switched to “All Messages”).
Revision 2802 (Wednesday, March 21, 2012)
IMPORTANT: This is the last release of MailMate which supports Mac OS X Leopard (10.5). This affects roughly 2% of the current user base (even less if including Mac App Store users) which is about the same as the number of Mac OS X Mountain Lion users (10.8). This revision of MailMate disables the automatic software update when running MailMate on Leopard.
Revision 2801 (Thursday, March 15, 2012) — Version 1.4.1
Customizable swipe gestures
Trackpad gestures are now supported by MailMate. It has been implemented with customization in mind as described in the following. The 4 standard swipe directions, left, right, up, and down, are transformed into key down events with the unicode characters \U2193
, \U2190
, \U2192
, and \U2191
(→ ← ↑ ↓). It is a bit of a hack, but it allows great flexibility with respect to what can now be done with gestures. By default, standard key bindings have been extended as follows:
"→" = "nextMessage:";
"←" = "previousMessage:";
"↑" = "previousThread:";
"↓" = "nextThread:";
"^→" = "nextUnreadMessage:";
"^←" = "previousUnreadMessage:";
"^↑" = "previousUnreadThread:";
"^↓" = "nextUnreadThread:";
The defaults may be changed (feedback is welcome), but in any case you can change it yourself using a custom set of key bindings. Swipe to archive, switch mailbox, delete messages, or whatever you like. As indicated by the defaults, it is possible to combine swipes with the use of modifier keys.
Other new keybindings
Based on a user request, the following actions are now available for binding keys to expand/collapse messages or threads in the messages outline (when organizing by thread):
expand:
collapse:
expandThread:
collapseThread:
In addition to toggleTag:
, it is now also possible to explicitly set or remove tags:
setTag:
removeTag:
Improvements
Most importantly, a number of optimizations should result in faster startup time, smoother scrolling in the messages outline, and faster display of messages, in particular, for large message stores.
- Added preferences for when to automatically mark messages unread (see the “Composer” preferences pane).
- Added support for named alternative email addresses (details in the chapter about account settings in the manual).
- Updated Markdown converter (
sundown
). It is now better at handling changes in quote-level although this is non-standard Markdown behavior. Also fixed handling of quoted code blocks which would often fail when indented code blocks were in use.
- Better detection of whether Markdown can be used for replies. Markdown is now enabled whenever the text replied to is known to be Markdown or does not contain Markdown markup.
- Added the use of an external script to convert HTML to plain text (Markdown) when needed for replies or forwarded messages.
- Now warns when trying to send a message from an account with no SMTP server configured (instead of silently not sending).
- Improved handling of links in the composer. No longer opened on single click. Hold down command to open a link or use the menu item.
- Drag’n’drop of email addresses between fields behaves as one would expect. The GUI feedback is still wrong (inverted). Hold down option or command to copy.
- Added “Reset Usage History” button in the Signatures preferences pane. MailMate now also automatically uses the first configured signature (if any exists) when a signature cannot be derived otherwise.
- IMAP server name and username settings can now be changed when editing account settings.
- Improved IMAP code for handling non-UIDPLUS servers.
- Changed how deleted messages are handled internally. Some actions should be (feel) faster now.
- Added columns for “Date Sent”. (Currently only works properly for new messages or if rebuilding the database.)
- Indentation in the messages outline column has been improved (the one with triangles). In particular, there is no indentation when not organizing by thread.
- Improved default columns shown for standard mailboxes under SOURCES (such as showing “To” instead of “From”).
- Improved mailbox outline display performance.
- Improved performance of resetting messages (“Message ▸ Reset…”).
- Better handling of address-only messages when completing addresses.
- Improved parsing of spam status related headers.
- No longer necessary to close the Quick Look panel before clicking a new Quick Look button.
- Improved behavior when moving signature to top after adding text to the top of the message. It is now placed under any text entered and before the “On … wrote:” line.
- Specialized handling of a
text/calendar
body part when it is part of multipart/alternative
(created by buggy software). It is now shown as an attachment when viewing the text/plain
or text/html
body part.
- Import Messages: Option to import into the destination mailbox even if messages are found within some hierarchy of folders.
- Improved importing of mailbox folders created by Lion Apple Mail.
- Added enclose-related words to the default attachments check.
- No longer trusts
X-Original-To
-like headers when creating new messages if they come before any Received
headers (this matches how replies work).
- Improved From address derivation. Now any
X-Original-To
and X-Delivered-To
headers are ignored if they come after any Received
headers.
- Improved derivation of From address for mailing lists where the
X-Original-To
header was not useful. Now it works if the real address is only found in the for
part of a Received
header. These parts of Received
headers are now scanned for known addresses.
- Attachment links are now draggable (and not just the attachment icons).
- Introduced hidden preference for setting the default type for mailbox counters:
MmMailboxDefaultCountKey
. Set it to none
to disable counting by default.
- Improved drag’n’drop of messages. Now inserts titled URL in RTF documents and a plain link in plain text documents. Also uses so-called promised files instead of real files.
New hidden preferences
The following three boolean hidden preferences values are now available:
MmMoveSentRepliesToMailboxOfRepliedMessage
MmAddressCompletionMailbox
MmNonPrivateNamespacesEnabled
The first one is self-explanatory, the second one can be used to control which messages are used for completion of email addresses in the composer, and the last one can be used to enable experimental support for non-private IMAP namespaces. Feedback is welcome, but none of these features should be considered complete.
Fixes
- Fixed bug which resulted in forwarded messages being marked as answered.
- When opening a message using a menu bar counter menu item or by clicking on a notification then the message is opened in the main window. Previously it often failed, because of an active search (which is now cleared instead).
- Fixed various problems related to circular message references including self-referencing messages. This includes crashes involving the
maximum_value_for_header
function. It has been solved by always breaking cycles when threading messages.
- Various issues fixed with regard to mailbox dragging/reordering.
- Fixed issue triggered by receiving
text/enriched
attachments which are really msword documents (generated by a buggy email client).
- Fixed bug related to messages with
message/rfc822
as content type in the root body part.
- Fixed sorting of Read state column (blue dot).
- Fixed parsing of (yet another) non-standard From address variant:
address (name <address>)
.
- Fixed issue with the hidden preference to prepopulate the Bcc header.
- Fixed handling of
mailto:
URL scheme when used to launch MailMate.
- Fixed crash bug when exiting MailMate with one or more open mailbox editors.
- Fixed crash bug which could be triggered by recipient addresses containing “single quote” marks.
- Fixed crash bug which (under special circumstances) could be triggered when using “Edit as New Message” followed by removing an attachment.
- Workaround for problem with ‘Gordano Messaging Suite IMAP4 server v15.02.3689’.
- Workaround for server which did not return a hierarchy delimiter when requested to do so (Surgemail).
- Fixed pasting URLs copied from a Webview. Previously the name was pasted instead of the URL.
- Added boolean defaults value MmEncodeFullSubjectLines. This can be used as a workaround for problems with buggy websites (like http://www.followup.cc/).
- Now uses the correct SMTP settings when sending a message with a derived email address.
- Now properly handling draft messages which were never saved, but which were still part of the database because of a crash. This fixed bug has the side-effect that when rebuilding a database empty messages are likely to appear in the Drafts mailboxes.
- Fixed an IMAP namespace problem. Triggered when multiple namespaces of a given type are reported by a server.
- More robust handling of IMAP servers unable to return the bodies of existing messages (workaround for MS Exchange bug).
- Now able to handle 0-sized IMAP messages (a problem which is rare and difficult to reproduce).
- Fixed behavior when detecting changed UIDVALIDITY value for an IMAP mailbox. Previously it could fail if the mailbox contained messages with no UIDs.
- Changed handling of IMAP messages with empty headers and body.
- Fixed default state for ignoring server subscription states (it was supposed to be on by default, but this was not the case).
- Updated default IMAP server used for iCloud IMAP accounts (
imap.mail.me.com
) when importing accounts from Apple Mail.
- Workaround for mailbox creation problem with buggy Yahoo IMAP server.
- Fixed SMTP settings in the IMAP account settings window to properly show an empty string.
- Improved date parsing such that some problematic
Received
headers are skipped (essentially a workaround for headers generated by a Gmail migration).
Revision 2651 (Saturday, December 17, 2011) — Version 1.4
Until this version of MailMate, during startup the user has been notified of any previous crashes and then offered the opportunity to submit them to Freron Software. This has been a very useful feature and crashes are now quite rare in general due to the fixes which have followed the crash reports sent. The feature still exists, but it has been simplified. The Preferences (⌘,) has a new setting where MailMate can be told to automatically send crash reports quietly. This is disabled by default, but you are automatically asked (once) to enable it if a crash report is found.
Reorganized and extended preferences
The Preferences (⌘,) window has been reworked and now contains 7 panes. Previously hidden preferences have been given a GUI and other preferences have been improved. “Software Update” has moved from the MailMate menu to its own pane and it has more detailed settings. In particular, you can configure it to automatically download beta versions of MailMate.
Markdown support
Markdown support is now available and you can enable it in “Preferences ▸ Composer”. The composer window is then going to include a Markdown-related menu in the status bar. You can read more about it in the Help Book, but essentially it means that you can write your messages in Markdown style and then MailMate is going to generate an HTML body part as an alternative to the plain text (Markdown) body part. Note that the composer has an alternative layout which makes it easier to experiment with this feature (see “View ▸ Layouts” when using the composer).
IMAP/SMTP
For new users, IMAP server subscriptions states are now ignored by default. This can be changed in the “Edit Subscriptions…” interface. For existing users (that is, existing databases) the default is still to respect server subscriptions.
The quest continues to support as many IMAP servers as possible. Some servers are more challenging (euphemism for buggy) than others, and some times servers reveal bugs in MailMate. The following are all of the IMAP related changes:
- IMAP/SMTP data parsing: Line endings should be so-called CRLF according to the standards, but MailMate now handles CR’s without LF’s as gracefully as possible (this fixes an iCloud IMAP server problem).
- Workaround for bug in MS Exchange IMAP server (wrong result for UID SEARCH commands).
- Server reachability is now handled a bit differently in an attempt to fix some issues with both IMAP and SMTP.
- Fix for problem with an MS Exchange IMAP server where the server provided information which was not requested for the destination mailbox of a move command (this is legal behavior, but it was not expected by MailMate in this special case).
- Introduced a “failed” stated for IMAP accounts which makes it easier for MailMate to avoid taking mailboxes offline unless explicitly requested by the user.
- Now accepts differing mailbox hierarchy delimiters returned from LIST and LSUB if one of them is NIL.
- Automatically ignoring “[Gmail]/Important” for new accounts. Also better at detecting “All Mail” and “Starred” when they are localized.
- Fixed various issues in the subscriptions editor, including broken filtering. You can now use ⌥ to select/deselect all (filtered) items.
When sending a message fails then a “Try Later” option is now available. It’ll retry after 15 minutes and then present the requester again (if it fails again). Each time the retry delay is doubled. When quitting, MailMate notifies the user if any messages are on hold.
If sending while offline then messages are automatically queued for sending when going online again. The state of individual messages can be seen in the Drafts mailbox. Using hidden options it is also possible to delay sending any messages (the delay is measured in seconds):
defaults write com.freron.MailMate MmSendMessageDelayEnabled -bool YES
defaults write com.freron.MailMate MmSendMessageDelay -integer 60
- SMTP: Increased end of DATA timeout to 10 minutes to be compliant with RFC5321.
Database rebuilding
MailMate now automatically offers to rebuild the database if an inconsistency is detected. The user is asked to choose between basing the rebuild on already downloaded messages or basing the rebuild on redownloading all messages. When based on downloaded messages, MailMate tries to maintain the usage history of signatures.
This is a major new feature even though you may never see it. The previous solution was to output an error to the system log and then simply terminate MailMate. It was not very user-friendly and it was difficult to recover manually.
Part of the implementation of this feature means that the UIDs of IMAP messages are now stored in file attributes. Also, moving messages between mailboxes is now done much more efficiently than it was before (on the local disk).
Other new features
Navigation keys have been for thread navigation (in the Messages menu for now). The corresponding selectors are next/previousThread:
and next/PreviousUnreadThread:
and they can be used for custom keybindings if needed. The default keys mirrors the keys for next/previous(Unread)Message:
with the addition of the control key (⌃).
The From address of a message is now customizable. A “Customize…” menu item has been added to the From-menu. This opens a simple sheet with a text field. The text field features automatic completion based on previously sent messages. Note that the From menu is not shown if only 1 identity is known (configured in accounts), but this is likely not an issue for users wanting to customize the From header.
Another new selector is scrollPageDownOrNextUnreadMessage:
which can currently only be used by assigning a key using custom key bindings. The idea is to assign it to the space key to make it behave a bit differently with respect to finding the next message (standard key binding simply looks for the next message and not the next unread message).
Two algorithms now exist for the dynamic signatures system. It can be configured using the Terminal as follows:
defaults write com.freron.MailMateSimple MmDynamicSignatureMethod -string standard
The three possible values are none
(to disable it), standard
(the default), and messageType
. The last one bases its signature guess on whether the message is new or is a reply. This is for users who typically write an initial message with a large signature and then subsequently use a small signature.
- SpamSieve is not launched before it is really needed, that is, when a message arrives in a mailbox covered by the SpamSieve settings.
- Dragging of so-called promised files now works with the composer. This means dragging events from iCal to the composer should work.
- “Edit ▸ Select Duplicates” feature (⌃⌥⌘A). If duplicate messages exist then this command selects anything but the original messages (those known for the longest time). This is a useful feature, but it is likely to be replaced with something more flexible in the future.
- Added new menu item for resetting messages, that is, remove them locally and then refetch them from the IMAP server (“Messages ▸ Reset…”).
- Added dock menu item for composing a new message.
- The default mailbox search terms are now automatically altered if viewing a mailbox with sent or draft messages such that any occurrence of
from
is replaced by recipient
.
- Moved Return/Enter to open messages to the standard key bindings (from Gmail bindings). Fixed the Enter key binding to actually work.
- As an experimental feature,
insertFormatString:
has been added as an alternative to insertText:
for key bindings. Mainly to allow one to do something like "x" = ( "reply:", "insertFormatString:", "Hi ${from.name.first},\n\n");
.
- Updated documentation.
Fixes
- Fixed bug related to creating a new message with an attachment, saving it, and then removing the attachment. In some cases the attachment was never really removed (the problem was related to autosaving).
- Fixed bug in reply code when replying to multiple senders. Most of the time only 1 sender was included in the To-header.
- Fixed messages outline to keep the selected row displayed when changing sorting column.
- Blind fix to an issue which only occurs for a single user with a very large number of configured accounts.
- Fixed problem with Growl 1.3.x on Lion. Also updated the Growl framework included with MailMate to version 1.2.3. Cannot just upgrade to the 1.3 framework since it does not work for 10.5.
- The state of the headers view (disclosure triangle) is now also saved in single message viewer windows.
- Fixed headers view menu item such that “New Message to…” works when only an email address is available. Also added “Reply to…” which is useful for emails with a reply-to field which would otherwise be used by default.
- Improved debug output for signature derivation.
- Fixed potential crash bug when new messages are deleted immediately (server side).
- Fixed bug in parsing of Thunderbird account preferences.
- Improved default identity for a new message when messages outline sorting has the newest message at top.
- Fixed crash bug when parsing a malformed
message:
URL.
- Improved navigation and sorting of threads when having newest message at top.
- Now showing registration window when trial time has ended (30 days of active use), but it is still possible to skip it and continue under the restriction of only being able to send 2 messages per launch.
- “Edit as New Message…” now maintains the original From header even if the email address is not explicitly configured in account settings.
- Replaced the Markdown converter,
upskirt
, with the latest revision from github. Note that its name has now changed to sundown
.
- Fixed bug in the From -> Recipient replacement for mailbox searching in a drafts mailbox.
- The preview layout (⌘1) of the Composer has been improved, in particular, the choice of layout is persistent and the window is now always closed when sending.
- Fixed autosave-related termination bug when editing drafts with attachments (often seen when forwarding).
- Swapped j/k related bindings in the Gmail keybindings file.
Revision 2491 (Sunday, September 25, 2011)
In addition to a range of fixes/improvements, this release also includes some important steps towards improving integration with other applications. Some of it is still in an experimental state, but you can read more about it further below. It might even be fun to play with.
Various fixes/improvements
- Fixed saving of splitview divider positions. It failed in some cases when restarting MailMate (the width of the mailboxes outline was not preserved).
- Fixed problem with a message being displayed even when a mailbox search has no matches (the previously selected message was still shown).
- Fixed various problems where MailMate would try to synchronize a non-existing or non-selectable IMAP mailbox.
- Improved forwarding behavior for messages with a
text/html
body part.
- Fixed counting of attachments (implicitly the display of the paper clip in the messages outline) to work when attachments are hidden within one of the body parts of a
multipart/alternative
MIME body part (most often produced by buggy email clients).
- Fixed some printing issues with message headers. Also, Quick Look buttons are no longer printed.
- Temporary solution for hiding Bcc headers when forwarding/printing is to use boolean defaults values MmNeverForwardBcc/MmNeverPrintBcc.
- Fixed program termination when copying messages to universal mailboxes.
- Fixed problems related to the responder chain when closing windows. This could terminate MailMate, e.g., when closing a composer window by sending a message.
- Fixed problem with synchronization of mailboxes when launching MailMate. In some cases this could lead to termination of MailMate.
- Changed behavior of MailMate if a (buggy) IMAP server returns out of range sequence numbers. MailMate now reports the problem to the user instead of terminating.
- Increased timeout value used after uploading a message to an SMTP server. Some servers are very slow to respond.
- Improved sorting of subjects in the messages outline.
Also added debug code to more easily get a log from a failing server connection. When an error window is shown with the options of “Take Account/Mailbox Offline” or “Retry” then you can hold down ⇧ to produce a log of a retry attempt. The file is saved to the Desktop with a name with the following pattern: “MailMate_server_mailbox.txt”.
Integration with other applications
Safari has menu items which can be used to easily mail pages or links. These menu items now also work for MailMate with the caveat that MailMate attaches page content (since the composer supports plain text only).
Also new is that MailMate supports the following in the Services menu: “New Email With Attachment” and “New Email With Selection”.
It is also possible to obtain a special MailMate menu item in the PDF menu of the printing dialog (this works in any application). This can be done by making an alias to MailMate in the following folder:
~/Library/PDF Services/
After making the alias, the name of the alias can be changed to, e.g., “Mail PDF with MailMate.app”.
Finally, MailMate now also handle the following URL schemes: mid
, cid
, and message
. Note that they can be “assigned” to MailMate by using the email application chooser in the (General) Preferences. Whether you need to do this depends on which email applications you have used in the past, e.g., “Apple Mail” only supports (and introduced) the message
URL scheme.
Also added a menu item for “Copy as Link” using the message
URL format. This URL scheme is an undocumented Apple feature, but this is going to work better if switching between Apple Mail and MailMate. An alternative could be the mid
URL format which is standardized. This might be optional in the future.
A RESTful interface
In order to try out the following very experimental feature, you need to enable it before launching MailMate:
defaults write com.freron.MailMate MmHTTPServerEnabled -bool YES
Now you can test it by entering the following URL in your favorite web browser:
http://localhost:54321
The only thing displayed is a link to the following:
http://localhost:54321/messages
This should show you a list of all messages in MailMate. You can click on any message, but don’t click on junk messages since external references (images mostly) are most likely not blocked in the browser. The link to message number 1 (if it exists) would then be:
http://localhost:54321/messages/1
You can also see the message number of any message in MailMate by enabling the “Msg ID” column in the messages outline. In the special mailbox “All Body Parts” you can also see the message number of any body part.
The default Content-Type
depends on the HTTP Accept header. In a browser, text/html
is likely returned for any messages or body parts of type text/*
, message/rfc822
, or multipart/*
. Other body parts are returned as they are defined in the MIME body part headers, for example, a body part of type image/png
is returned as image/png
(decoded to its binary form). When using curl
from the command line then the default output is text/plain
for body parts where this return type is supported. This is nicely decoded canonical (utf-8 encoded) text.
The returned data can be changed by explicitly stating the accepted type(s). For example, using curl
from the command line, you can retrieve a raw message as follows:
curl -H'Accept: message/rfc822' http://localhost:54321/messages/1
Or you can retrieve the HTML formatted message used in the browser:
curl -H'Accept: text/html' http://localhost:54321/messages/1
You can also reference header values as follows:
http://localhost:54321/messages/1/headers/x-mailer
In this case the result would be a json array like ["MailMate r2460"]
if the message had been written in the latest (registered) revision of MailMate. The following is an example of how to use a specifier to only get the MailMate
part of the header:
http://localhost:54321/messages/1/headers/x-mailer/name
You can also try the above in a browser where the following URL can be used to see a list of all headers in a message:
http://localhost:54321/messages/1/headers
Note that message/rfc822
is also supported for the URL above.
All of this is work in progress and should be considered a “proof of concept”. The main goal is to use this as an interface for retrieving information about messages in MailMate from scripts in any language.
For now, MailMate still lacks a way to run commands on selected messages and therefore the above is not yet very useful in practice, but you are encouraged to play with it and maybe even provide some feedback.
Revision 2419 (Wednesday, August 24, 2011) — Version 1.3.1
Custom key bindings
The custom key bindings feature is now exposed in the GUI. It can be enabled in “Preferences ▸ General” and a comma-separated list of custom key bindings files can be entered. For now, only a Gmail key bindings file is distributed with MailMate. A help button in the preferences leads to a help book chapter which describes how you can create your own shortcuts, for example, to go to specific mailboxes, move messages, or to toggle IMAP keywords/tags.
Note: If you have used this feature while it was not exposed in the GUI then you still need to go to the preferences and enable it.
Hidden preferences
Over time, numerous hidden preferences have been described in the release notes. A new chapter in the help book lists all of them. Some of them are eventually going to have GUI counter parts, some will stay hidden, and some will be removed again. Look through the list to see if it contains one or more useful features for you. Feedback is welcome.
“Guessing” standard mailboxes
Introduced strategy for guessing standard mailbox names, for example, MailMate automatically figures out to use a mailbox named “Trash” for deleted messages instead of creating a new mailbox named “Deleted Messages”. This is a heuristic approach since there is no standard for getting this information from IMAP servers except for the non-standard XLIST extension used by Google (and maybe others have adopted it). This extension is also supported by MailMate.
Other changes
- Now updates the choice of From-address (identity) when changing the main recipient in new messages (not for replies).
- Now stops updating From-address/signature when an explicit choice has been made (for example, after choosing “No Signature”).
- Fixed completion of names when inserting adress book groups in the composer (previously only the first name was included)..
- Fixed selection-problem in the Correspondence outline (nested messages were not always selected).
- Fixed problem with duplicates in the Drafts folder after quitting MailMate while writing an unsaved new message.
- Removed unnecessary refresh when using Quick Look. In some cases this could also terminate MailMate.
- The Quick Look buttons no longer require javascript and are thus displayed for all messages (previously not shown for HTML messages).
- Automatically expands the SOURCES section in mailbox outline when adding new accounts. Important for the new non-obvious show/hide style used in Lion.
- Fixed issue on Lion with respect to restoring window frames on startup.
- When selecting a mailbox MailMate makes a quick check for new messages. For smart mailboxes MailMate identifies any explicit mailboxes on which the mailbox is based (recursively) and makes quick checks for new messages in these.
- Added “View ▸ Clear Scrollback” (⌘K) menu item for clearing the log view in the Activity Viewer. It clears all logs if no connections are selected.
- Fixed sorting problem for messages with address fields with only an email address.
- Fixed selection problem in the correspondence outline. Some times MailMate would not select the correct message after, e.g., archiving.
Link crashes (Default Folder X)
Some users have reported crashes when clicking on links in emails on Lion. If you experience this problem then it is very likely that you need to update the Default Folder X application. This problem also seems to not be limited to MailMate, but may occur for other applications as well.
Revision 2359 (Saturday, August 6, 2011)
- Fixed problem with the IMAP server at gmx.net (MailMate never finished synchronizing mailboxes). The problem may also have affected other IMAP servers.
- Fixed an issue with viewer windows not opening on restart.
- Fixed problem related to actions immediately after changed message selection (like double-clicking or when archiving multiple messages quickly one by one).
- Now properly remembering whether or not automatic spelling correction is enabled in the composer.
Added temporary solution for adding a bcc header by default to all outgoing messages. Write the following in the Terminal if you need this:
defaults write com.freron.MailMate MmDefaultBccHeader -string me@example.com
Added experimental prefs value MmAllMessagesFilter to make searches faster. It can be used to reduce the number of messages included in the “All Messages” mailbox. All messages are still available via the IMAP sources/mailboxes:
defaults write com.freron.MailMate MmAllMessagesFilter -string "#date > 1 years ago"
Revision 2341 (Wednesday, August 3, 2011) — Version 1.3
With this release MailMate now officially supports Mac OS X 10.7 (Lion). Lion related changes are described in the following subsection. The release notes for this release are extensive, but you should note the subsections further below describing some new experimental features, in particular, a new flexible system for custom key bindings (providing Gmail-like keyboard shortcuts) and the first small steps toward support for OpenPGP.
- Added full screen mode in Lion (⌃⌘F).
- Fixed account importer to work for Apple Mail on Lion.
- Added menu item in “View ▸ Spelling” for toggling the use of automatic spelling corrections.
- Fixed problem on Lion with storing/restoring view frame sizes. Most often seen by a wrongly sized mailbox outline.
- No longer using a private API for non-local address books when running on Lion (Apple fixed this issue).
- Fixed occasional beeps and other problems triggered when quitting MailMate.
New features and improvements
- Undo/redo supported for moving messages.
- Changed the look of attachments using tables and an updated stylesheet. This includes a button for “Quick Look” and drag’n’drop of the file icon.
- Improved replying to messages in the Sent mailbox (which are handled as follow-ups instead of replies): Cc and Bcc are handled, the “Reply or Reply All” requester is never shown, and the default signature is derived correctly.
- Mailbox Search/Editor: Fixed several date related issues including sticky values when changing comparison method or duplicating rows.
- Mailbox Search/Editor: Date comparisons can now be done on the received date as well.
- When cancelling/closing a mailbox search MailMate now returns to the originally selected mailbox.
- Changed derivation of default From address to prioritize known recipient addresses higher than delivery addresses.
Two new options have been added to Preferences/General (based on frequent requests):
- An option to change the default behavior of double-clicking a message. It can now be set to open the message instead of searching for related messages.
- An option to use a bold font style for unread messages.
There is also a new hidden boolean option. When enabled, any message viewer or composer window is taken to the front when the dock icon is clicked. Normal behavior is to always open a mailbox viewer if none exists:
defaults write com.freron.MailMate MmShowAnyViewerOnDockIconClick -bool yes
Custom keybindings
A new system is in place to provide custom key bindings for common tasks. As an example MailMate includes many of the key bindings used by Gmail. There is no GUI option yet, but this feature should be stable. To enable it, run the following from the Terminal:
defaults write com.freron.MailMate MmCustomKeyBindingsName -string "Gmail"
The key bindings are defined in the files located in:
MailMate.app/Contents/Resources/KeyBindings/
It is possible to create a new key bindings file and place it in:
~/Library/Application Support/MailMate/Resources/KeyBindings/
The Gmail key bindings file can be used as a starting point for new files. It includes most of what is possible to do. Each key-combination (or series of key-combinations) can be bound to one or more actions. Each action is defined by a so-called selector.
Some selectors accept an additional argument. These are insertText:
, goToMailbox:
, moveToMailbox:
, and toggleTag:
. The goToMailbox:
and moveToMailbox:
selectors work both with and without an argument. Alternatively, goToMailbox:
can take the unique id of any mailbox as an argument (see Mailboxes.plist) and moveToMailbox:
can take one of the following as an argument:
- A standard mailbox name such as inbox, archive, drafts, sent, junk, and trash.
- A mailbox path without an account such as
/Special
.
- A full path for a mailbox within an account such as
imap://you@imap.example.com/Special
The following example would bind the key g
to move a message to a mailbox named Special
within the account the message is currently located:
g = ( "moveToMailbox:", "/Special");
Here is an example of using key bindings to tag messages. It also illustrates the use of nested key bindings:
"t" = {
"s" = ( "toggleTag:", "Special" );
};
In this example, entering ts
toggles a tag named Special
. It should be possible to define a column showing the state of such a tag and it is possible to match on it when searching or creating smart mailboxes. Other than that the tag is “invisible” for now. Note that the tag is given directly to the IMAP server and thus you should use ASCII and no special characters including no use of space.
Basic experimental OpenPGP support
The first step has been taken towards support for OpenGPG. So far, there is only support for decrypting and verifying ASCII armored text parts (inlined signatures/encrypted text). It should not be considered stable, but you can help by trying it out anyways.
MailMate is currently hardcoded to use /usr/local/bin/gpg2
which you need to install if you do not already have it. The GPGTools installer is recommended (or just MacGPG2 and optionally GPG Keychain Access).
To enable this feature in MailMate you need to paste the following in the Terminal:
defaults write com.freron.MailMate MmEnableOpenPGP -bool yes
Experimental “IMAP window”
Since MailMate is an offline email client it requires a lot of disk space if you have a large collection of emails. As an experimental feature MailMate now offers to only fetch a subset of messages based on their age. It is currently controlled with an application wide preferences value:
defaults write com.freron.MailMate MmIMAPWindowInDays -int 365
This should limit MailMate to only fetch messages with a date within the latest year (technically, it is based on the so-called INTERNALDATE of the message on the server).
MailMate does not dynamically adapt to changes to these settings yet. It only has an effect when initially synchronizing an account. (Internally, MailMate supports controlling this window at both account and mailbox level, but this currently requires manual editing of state files.)
Any feedback on this feature is welcome, but use it with care. It is experimental.
Other changes and fixes
The following is a detailed list of all other changes since the latest public release:
- Improved the behavior of MailMate with regard to the INTERNALDATE provided for a message uploaded to an IMAP server.
- Fixed termination problems triggered when deleting an account or some times just quitting MailMate.
- Coalesced identically named “Open Message” menu items in the “File” menu.
- Fixed problem with lacking quotes around names in email addresses. Now only allows
-_
and alphanumeric characters without quoting.
- Fixed problem with flags not being set for new messages (resulting in an unread state for sent messages).
- Fixed selection of next/previous message in some circumstances when, for example, archiving messages.
- Temporary solution to a visual problem with showing a large number of recipients in the headers view.
- Fixed problem which could cause MailMate to be stuck in a mailbox, i.e., it was impossible to get into a different mailbox.
- Fixed visual glitch when deleting text. It was fixed by not removing attributes unless they exist (seems to be an NSTextView bug). Also tried to fix a performance problem, but this was not possible.
- Fixed rare crash related to unescaped quotes (triggered under certain circumstances when inserting a quote character in a recipient field in the composer).
- Fixed crash related to the use of ’ when searching for a string in an email.
- Added “attaching” to the default set of words triggering a potential warning about missing attachments.
- Improved threading of messages with a References header but no In-Reply-To header.
- Better/correct splitting of quoted paragraphs when doing it at the end of a line.
- Now properly showing From-popup when basing reply on a delivery header with a different address than the address of a single-account-single-address configuration.
- Generated HTML is now much more readable (“Show HTML Source”).
- Removed explicit stylesheet used for “Show Raw Source”. Replaced by styling pre-elements which have been assigned a special class name (
raw
).
- MailMate is now compiled using
clang
instead of gcc
. May or may not improve performance (no benchmarks done), but it certainly improves development speed.
- Fixed bug which would some times cause the importer window to never appear.
- Detection/display of links surrounded by \<…> in plain text now works better.
- Improved (less strict) parsing of Message-ID header.
- Fixed various issues with key bindings. In particular, space did not always work as expected. This was related to how/when Cocoa issues the performClick: action.
- Swapped the priority of Content-Description filename and Content-Type name when determining a filename.
When using the following debug variable, a log file is dumped to /tmp/mailmate_imap_subscriptions.log
if an error occurs while fetching mailboxes to be displayed for “Edit Subscriptions”.
defaults write com.freron.MailMate LoggingEnabled -bool YES
(It also enables logging for the Activity Viewer even when the Activity Viewer is closed.)
Revision 2204 (Monday, June 13, 2011)
- Fixed multiple issues with authentication in both IMAP and SMTP. This is a good time to retry with any problematic accounts.
- SMTP: When trying port 465 (which is non-standard and undocumented) both STARTTLS and portwrapped SSL is attempted. If you have had problems enabling SSL on port 465 then it might work now.
- Fixed various issues displaying HTML messages.
- Attachments are now (more often) displayed when viewing the plain text body part of a message with an HTML alternative.
- Workaround for problem with displaying rare subject lines with multiple blobs a la: “[blob1] Re: [blob2] Re: Re: Subject…”.
- Close any active mailbox search when closing the messages viewer window. This makes the counter menus more reliable when selecting messages.
Revision 2191 (Wednesday, June 8, 2011)
Improved Markdown support (still experimental)
MailMate now ships with a Markdown converter. It is named upskirt
and it was originally created for GitHub. A blog post will soon be posted which describes the Markdown experiment in more detail.
An alternative composer window has also been included by default. It contains a message view to make it easy to preview the current draft by simply saving it. See the “View ▸ Layouts” menu or just hit ⌘2 in the composer.
The default CSS has been improved to work better with the output from upskirt
. This includes a simple look for tables.
Other changes
- Changed default tooltip for thread arcs. It now simply states from name and a relative date, for example, “John Appleseed, 2 days ago”.
- Fixed minor problem with displaying attachments with an explicit inline content disposition.
- Fixed some SMTP authentication problems.
- Fixed problem with occasionally unsaved text field values in the preferences windows.
Revision 2175 (Thursday, June 2, 2011)
Fixed issues with IMAP authentication methods (AUTH=PLAIN and AUTH=CRAM-MD5).
Revision 2169 (Thursday, June 2, 2011) — Version 1.2
Special note: Goggle has changed the default set of mailboxes provided via IMAP. It is strongly recommended to go into the Labels part of the Gmail web settings and make sure the following mailboxes are marked as “Show in IMAP”: Sent Mail, Drafts, Spam, and Trash.
New look for attachments
A transition has started to provide a more table-like display of non-inlined attachments with 1 row for each attachment. Note that:
- Dragging attachments (including inlined images) now works as expected.
- The context sensitive menu is shown when right-clicking anywhere in a row.
- There is a new menu item to “Open With”.
Inlined PDFs are shown using the img HTML tag (thus avoiding PDF plugins). Note that you can always Quick Look attachments (⌘Y). If you never want to inline PDFs then you can do the following in the Terminal (temporary solution until a general system is in place):
defaults write com.freron.MailMate MmNeverInlinePDF -bool YES
Updated stylesheet for the messages view
As part of the attachment changes, the HTML generated has been simplified and the default CSS file has been updated/extended. If you have created a local stylesheet variant you may need to update it. If you have experience with CSS then you are encouraged to take a look at the default stylesheet:
/Applications/MailMate.app/Contents/Resources/MmMessagesWebView/stylesheet.css
You can extend the stylesheet by creating a file in the following location:
~/Library/Application Support/MailMate/Resources/MmMessagesWebView/stylesheet.css
You can see the HTML generated for a message by using “View ▸ Show HTML Source” (⌃⌘U) within MailMate.
Experimental: Markdown for writing emails
The following enables an extra option in the composer which allows you to tell MailMate that you are writing your message using Markdown:
defaults write com.freron.MailMate MmAllowMarkupLanguages -bool YES
The motivation for this idea is going to be described in a blog post, but in short, if Markdown is chosen then markup=markdown
is appended to the Content-Type of the text body part of the message. This can be ignored by the receiving email application or it can be used to convert the Markdown text to HTML before displaying it. Currently, the only email client to do so is of course MailMate and currently it only works if MailMate finds markdown
or upskirt
in the default path (a Markdown to HTML command is currently not distributed with MailMate).
Various new features
- Added submenu items for counter menus in the status bar: Archive, Move to Junk, Delete, Reply, Forward, and “Mark as Flagged/Read”.
- Added “Empty Mailbox” menu item for Deleted Messages and Junk.
- Added shortcut to synchronize the currently selected mailbox (⇧⌘N).
- It is now possible to synchronize smart mailboxes which are based on IMAP mailboxes (also ⇧⌘N).
- Escape can now be used for both cancelling text search in webview and for cancelling mailbox search.
If available the IMAP XLIST command is now used (supported by Gmail) to get the standard mailboxes. This should make MailMate work better (by default) when used with localized variants of Gmail. It may also affect your current setup if mailbox types had not been explicitly assigned.
Changed the detection of delivery headers (such as X-Original-To
) such that it no longer requires the existence of an identity with the same domain in an email address as found in the delivery header. If this is a problem for some users then please report it (more real life examples would be useful since this is basically a heuristic). The new behavior can currently be disabled using:
defaults write com.freron.MailMate MmAlwaysTrustDeliveryHeaders -bool NO
MailMate is now also better at guessing an appropriate from address for, e.g., mailing list messages (essentially doing the same as when replying to messages).
New debug variables
Debug variable for scripts:
defaults write com.freron.MailMate MmDebugScripts -bool YES
Debug variable for logging communication between SpamSieve and MailMate:
defaults write com.freron.MailMate DebugSpamDetection -bool YES
If you have had problems with accounts getting stuck in a “disconnected” state then you can help debug the problem doing as follows:
defaults write com.freron.MailMate MmDebugReachability -bool YES
This is going to log data which can be found in Console.app when the problem occurs.
Details, detail, details
This is an example of how you can change the font of the headers view (intermediate solution since the headers are planned to be moved to the messages view):
defaults write com.freron.MailMate MmHeadersViewFontName -string "LucidaGrande"
defaults write com.freron.MailMate MmHeadersViewFontSize -float 16
Other details:
- Changed the parsing of the List-ID header identifiers to include those not following the format in RFC2919 (for example, the IMAP protocol mailing list).
- “Move to/Go to Mailbox” now use the full mailbox path in the mailbox chooser. This should make it easier to match submailboxes.
- If available the IMAP ID command is used to tell the server about MailMate.
- Fixed problem with updating universal mailboxes when changing assigned mailbox types in IMAP accounts.
- Fixed problem with unnecessary resizing of views in the Widescreen layout (triggered when doing a mailbox search).
- Fixed problem with matching some mailbox names in “Move to/Go to”, (mailbox names with non-ASCII not created in MailMate).
- Fixed: The mailbox search did not work correctly for ‘exists/not exists’ queries (they were simply ignored).
- Fixed problem with the From-field not being shown when a single account was configured with multiple addresses.
- Fixed problem with an email with a date which was 410 years ago (and any similar date-handling problems).
- Fixed problem with Synchronize All Sources.
- Fixed problem with MailMate terminating after entering a recipient in the composer. It was triggered when restarting MailMate with a composer window open with a non-existing message.
- Fixed problem with moving messages into the INBOX on an account with an INBOX namespace. An INBOX/INBOX was created, but the messages were still correctly moved to INBOX.
- Fixed problem with percentages shown in the statistics view (only a problem on Leopard).
- Improved detection of local IP for use in the EHLO of SMTP (important to avoid rejection by some SMTP servers).
- Fixed crash when deleting an account (triggered by trying to get the state of a non-existing mailbox).
Revision 2089 (Wednesday, May 4, 2011) — Version 1.1.2
Improved mailbox search
It is now possible to save the default mailbox search conditions. Setup the search you would like by default (likely with empty text fields) and then select “Edit ▸ Find ▸ Use as Default Search”. Note that (as always) empty text field values are ignored when doing a mailbox search (as opposed to the smart mailbox editor). This is not new, but it is useful to know if setting up multiple conditions in the default search.
Also, when adding rows in the rule editor the new row is based on the row for which + was clicked (or the closest following simple row if a compound row is clicked).
Improved completion of addresses in the composer
- Stays in edit mode when pasting if the pasted string does not appear to contain an email address.
- When a single token is selected, the space key can be used to go into edit mode.
- When completing addresses and no matches are found, the casing is now returned to how it was entered. This is especially useful when manually entering an email address which is unknown to MailMate.
- Fixed various issues with duplicate entries in the suggested completions.
- Fixed an issue with reordering of first/last name when completion was based on previous recipients.
- Fixed an issue with tabbing out of an address header when a group name is entered.
Other changes
Fixed a bug related to the junk state of messages. When deleting a message in Junk it was wrongly marked as not junk. A bad side-effect of this is that SpamSieve was also notified that it was not junk. If you have been affected by this bug then you should consider resetting the corpus in SpamSieve. Thanks to Erik for reporting this problem (ticket #124).
Empty email address groups are now ignored when sending via SMTP. This can be used to, for example, send to “Undislosed Recipients:;” without getting an error. For convenience you can create an empty Address Book group with “Undisclosed recipients:;” as a name (or some other name, but remember to include “:;”).
Added support for the SMTP authorization method named LOGIN. This is an alternative to PLAIN which is already supported by MailMate, but some SMTP servers only support LOGIN. These methods are almost identical, but LOGIN requires more round trips to the server than PLAIN. If you have had problems with MailMate continually asking for a password for some SMTP servers then this might be a solution.
- Open Messages (⌘O) now opens multiple messages in one window. Separate windows can still be obtained using ⇧⌘O.
- The behavior of smart mailboxes with filters such as “date is within last x days” has been improved.
- The Bcc header is stripped by MailMate itself instead of leaving it to mail transfer agents.
- Fixed memory-issue with importing large IMAP accounts/mailboxes.
- Fixed minor issue with replies based on selected text (ticket #121).
Revision 2038 (Friday, April 8, 2011) — Version 1.1.1
Autosave
When composing a message, a copy is autosaved every 30 seconds (but only if changes exist). When launching MailMate, any autosaved messages are detected and the user is asked to either discard or import. This should never result in more than 2 versions of a draft: The autosaved version and the most recently explicitly saved version.
Other changes
- Reordering of standard mailboxes is now allowed.
- “Save Attachment…” now shows and allows changes to the default filename.
- More information provided when importing messages.
- The Flag column in the messages outline is now used to display an exclamation mark for high priority messages (only when message is not flagged).
- Improved replying to messages in “Sent Messages”. It previously failed when the message was not sent from the first identity of an account.
- Removed maximum width for a couple of integer columns in the messages outline in order to better handle custom font sizes.
- Only applying SpamSieve to messages without the $NotJunk flag. This is needed, for example, if running SpamSieve on two machines when trying to move a message from the Junk mailbox back into the Inbox.
- Now using “MIME-Version” instead of “Mime-Version” in new messages. Details matter.
- Workaround for Gmail for a problem resulting in sent messages ending up in the trash. How to reproduce the problem is unresolved but it is likely related to Googles alternative interpretation of the IMAP standard.
- Workaround for servers wrongly providing EXISTS responses before EXPUNGE (Yahoo, MS Exchange 2007, and probably others).
- Fixed various other IMAP issues.
Revision 2003 (Friday, March 25, 2011) — Version 1.1
MailMate for everybody
Several improvements allow MailMate to work with most (if not all) IMAP servers. Send some feedback if you have an IMAP account which does not work with MailMate.
The most important improvements are:
- No longer requiring the UIDPLUS extension. Servers with the UIDPLUS extension are still recommended since it is both more robust and more efficient when utilized by an offline IMAP client such as MailMate.
- Better handling of IMAP servers with limited support for IMAP keywords (such as MS Exchange IMAP).
- Handles when the INBOX on the server is not in uppercase (such as Yahoo IMAP).
Image blocking improved
The default in MailMate is now to always block external references, but the user has detailed control of the behavior using some new preferences (currently under General). The most important setting is “Block external references for messages in …” which allows the user to define a mailbox containing the messages for which blocking should be enabled. The default is “All Messages”, but it could be any smart mailbox, for example, a smart mailbox excluding messages which have been identified as being safe. This could be based on headers inserted by server-side spam detection software (like “X-Spam-Score” or “X-Spam-Flag”).
For convenience, the preferences also include a checkbox for “Load external references for messages marked Not Junk” (this could also be done using a smart mailbox as described above). This is especially useful when combined with a new SpamSieve option which allows you to automatically mark messages as Not Junk if they have a low spam score.
Go to the General preferences and play with these new settings and send some feedback if it somehow cannot handle your preferred use of image blocking.
Note that blocking is always enabled for messages in “Junk” or “Deleted Messages”. It is also always enabled for attached messages (occurs when using something like “Forward as Attachment…” has been used to construct an email). This allows one to safely receive forwarded spam.
When completing addresses, MailMate now looks in all Address Book sources. Technical note: This is done using a private API and therefore this feature may be removed again in future versions of MailMate. Feedback on both success and failure of this feature is welcome.
When pasting in the composer, text is preferred to images (pasting an image makes it an attachment). This was necessary since otherwise pasting text from some applications would instead result in the attachment of an image.
Also note:
- Email address completion now works for Address Book groups including distribution list identifiers.
- Improved splitting/merging of quoted paragraphs.
Other changes
MailMate now enforces a 30-day trial period. It is measured as days of active use measured by the number of days on which messages have been sent. When the trial period has expired, you can still use MailMate, but you can only send 2 messages per launch.
Interesting minor changes:
- Separate search shortcuts: Search All Messages (⌥⌘F) and Mailbox Search (⌃⌥⌘F).
- The Search button in the toolbar now keeps MailMate in the current mailbox if holding down ⌥.
- Allows renaming of standard mailboxes.
Various (less interesting) fixes:
- Fixed bug in saving attachments using “Message ▸ Save Attachments…” triggered when focus was in the message view (nothing was saved).
- Fixed rare crash bug related to a message being deleted while in the process of being displayed in the message view.
- Fixed problem triggered when an IMAP connection was reused to select a second mailbox just after a message was expunged from the first mailbox (server-side).
- Fixed crash bug which was triggered when a new IMAP mailbox was registered and a popup button with mailboxes was in use at the same time.
- “Move Out of Junk” is no longer greyed out in the messages menu when messages are selected in the Junk.
- Fixed bug in the filter editor (Mailbox Search) which would make it ignore parts of the query if an any/all expression existed with a single child.
- Removed toolbar button in the Preferences window.
Revision 1951 (Saturday, March 5, 2011) — Version 1.0.2
The SpamSieve support can now be enabled in the preferences. This includes the choice of a mailbox in which SpamSieve should be used to check new messages. By default, this mailbox is the unified Inbox, but it could be any smart or real mailbox.
The handling of messages outline columns has been improved. Submailboxes automatically inherit the settings of parent mailboxes unless explicit changes are made and it is now possible to select the outline column (the column with a triangle) which is useful if the order of columns is changed.
Composer related changes:
- Improved the default choice of identity (from-address) for new messages.
- Fixed handling of signatures such that “No Signature” is remembered for future messages.
- Fixed quoting level color when removing the last quote level character.
- The various settings in the Substitutions menu (in the context sensitive menu) are now saved. In particular, Text Replacements can be enabled (see Language and Text in the System Preferences).
IMAP related changes:
- Fixed issue where subscribed mailboxes under a private namespace were not found (due to a missing delimiter in the namespace prefix).
- When creating a mailbox with the same name as an unsubscribed mailbox, the mailbox is automatically subscribed (instead of failing).
- Added alternating row colors in subscriptions sheet.
Other changes:
- Added “Common Headers or Body” to make it easier to search addresses, subject, or unquoted body text.
- Fixed encoding of long header lines with non-ASCII and no spaces (for example, a subject line in Japanese).
- Now allows whitespace around “=” in Content-Type parameters (in order to handle a bug in at least some versions of PHPMailer).
Revision 1928 (February 23, 2011) — Version 1.0.1
Reply All vs. Reply
Until now MailMate only had a single “Reply” button (and menu item). It worked as “Reply All” and the only way to make a private reply was by clearing the Cc header. This has now been improved, but even though a “Reply All” (⇧⌘R) menu item has been added, the intention is that it is not needed, because of the new behavior of “Reply”.
The feature is quite simple. When replying to a message with multiple recipients, MailMate displays a sheet to ask if one wants to reply to all or to reply to the author only. There are easy shortcuts for both alternatives (Return and Space).
Rationale: It is bad to reply to all if one really wanted to reply to a single person. But it is also bad (although not as critical) to forget to reply to all when that would have been appropriate. The solution here is to always ask when a message has multiple recipients. If you dislike this behavior, you can go to Preferences/General to make Reply work as in, for example, Apple Mail.
SpamSieve (experimental)
As you may have noticed, MailMate has no built-in junk-filtering. This is unlikely to change soon (if ever), but now there is support for SpamSieve, a shareware utility for identifying spam. It was, more or less, implemented today, so for now it is an experimental feature and can only be enabled via a hidden preference.
To enable it, copy/paste the following to the Terminal:
defaults write com.freron.MailMate SpamSieveEnabled -bool YES
Note that the preference above may be cleared by MailMate if it fails to find and launch SpamSieve.
The SpamSieve support works as follows.
- Any new message in any Inbox is given to SpamSieve. If it is identified as spam then it is automatically moved to Junk (within the same account).
- If a message is explicitly marked as “Junk” by the user then SpamSieve is told that the message is good.
- If a message is explicitly marked as “Not Junk” by the user then SpamSieve is told that the message is spam.
You can use the “Junk/Not Junk” keywords to train SpamSieve. The SpamSieve score can be seen in a dedicated messages outline column. A planned feature is to allow the user to specify the mailbox for which SpamSieve should be used to check for spam. The default is the unified Inbox.
Memory leak in Activity Viewer
An important memory leak was found in the Activity Viewer. It was especially bad if the Activity Viewer was open during the initial synchronization of account(s).
Other
There is now a hidden option to enable alternating row colors in the messages outline:
defaults write com.freron.MailMate MmMessagesOutlineUsesAlternatingRowColors -bool YES
Minor changes and bug fixes:
- Fixed the row height in the outlines for custom fonts (some fonts were previously clipped).
- Fixed date issue caused by UNIX calls and CFTimeZone disagreeing on the current time zone (in relation to UTC).
- Added “Save Attachment…” to the context sensitive menu in the message view.
- Enabled “New Folder” in save panels for attachments.
- Improved handling of opening .eml files (but still not showing .eml messages which are not known by MailMate).
- Now encoding all application/* MIME types as base64.
- Fixed crash/efficiency bug related to adding the bodies of retrieved messages to the database.
- Fixed crash bug triggered, e.g., when double-clicking on a message in the To-column when the message had multiple recipients.
- Improved parsing of quoted strings in headers, e.g., filenames containing double quotes.
- Fixed crash bug which could be triggered by “Edit as New Message…”.
- Fixed “Use as Default Headers” in the Composer which was broken in recent updates.
- Fixed crash related to renaming IMAP accounts.
- Added messages with the \Deleted flag to the set of messages which should not be trusted to fetch external resources.
- Removed “Delivered-To” from the set of headers checked when trying to deduce an alias for a from-address. Should probably never have been added in the first place.
- Looking for Thunderbird settings in ~/Library/Thunderbird/profiles.ini instead of Profiles.ini.
Version 1.0
All of the following release notes are from the beta releases of MailMate.
Revision 1902 (Wednesday, February 16, 2011)
- Reorganized the help pages (they are far from complete, but they do contain valuable information).
- Added some toolbar buttons to the single message viewer which now also supports archiving/junking/deleting messages.
- Fixed message-moving related menu/toolbar items (archive, junk, delete) to work correctly in both main viewer and single message viewer.
- Removed the non-functional color-popup for counters (just postponed for now).
- Renamed “All” to “No Specifier” in the headers popup.
- Fixed crash on exit related to the termination of SMTP connections.
Revision 1891 (Sunday, February 13, 2011)
This is likely to be the last update before 1.0. As previously noted, development will continue in the 1.x.x series as it has in the 0.9.x series.
- Added “Save Attachments…” menu item.
- Added warning when removing an account.
- Removes SMTP settings and identities which are no longer in use (due to deleted accounts).
- Inserted some upper limits on the size of unquoted/quoted text allowed in the database per message.
- Fixed subject header specifiers such that “Re: [MailMate] Re: Some subject” can be normalized to “Re: [MailMate] Some subject”.
- Fixed crash bug when moving a message out of junk (triggered when MailMate had not moved the message into Junk).
Revision 1880 (Wednesday, February 9, 2011)
As previously advertised, MailMate no longer supports local mailboxes. On startup, MailMate detects local messages in the database and offers to copy them to a folder on the desktop. After that they are deleted in MailMate.
The previous support for local mailboxes was never complete and it was mainly used as a fallback when copying a message to an IMAP mailbox failed. It is possible to emulate local mailboxes by creating offline IMAP mailboxes, but this is not recommended. In particular, it makes you more vulnerable to data loss in the event of a disk crash or another unexpected incident.
Other changes in this update:
- Added dynamic “New Message to …”, “Add to Address Book…”, and “Show in Address Book…” menu items to the context sensitive menu in the headers view.
- Added “From or To …” searches to the Find menu in the context sensitive menu of the From/To columns in the messages outline.
- Fixed problem with copying values to the pasteboard when a message had multiple recipients.
- Holding down ⌘ to open in the background now also works for http-links (previously only worked for attachments).
- Using shift (⇧) and space in the messages outline scrolls the message view 1 page up (if possible) – this matches the use of space to scroll 1 page down.
- Added a proxy icon for the corresponding file on disk when viewing a single message.
- Cleaned up the context sensitive menu in the messages viewer (removed meaningless default items).
- Automatically opens ‘Add IMAP Account…’ on startup if no accounts are available for importing from Mail/Thunderbird.
- Fixed: Pasting graphics from the pasteboard would create a root file named PastedImage.png.
- Commas are now inserted when copying multiple addresses to the pasteboard (in the composer).
- Changed “Mailbox Search” back to searching in “All Messages” by default.
Revision 1862 (Tuesday, February 1, 2011)
The first item in the following list is going to be important to some users since (in worst case) MailMate would crash when synchronizing the deletion of some messages.
- Fixed problems triggered by messages of the MIME type
message/*
which are not message/rfc822
. In a recent version of MailMate, the parsing of these messages was changed and it could then crash MailMate if displaying/deleting messages parsed by older versions of MailMate.
- Swapped/changed the use of qualifiers to alter searches. Most searches now go to “All Messages” automatically. This can be prevented by holding down ⌘ or ⌥ if desired. Remember that ⌘[ can be used to go back in history and thus go back to the original mailbox after doing a search.
- When selecting a message/mailbox via a menu bar item then an existing mailbox viewer is used except if holding down the ⌘-key.
- Fixed message display issue. Each quoted paragraph was prefixed with a space character (it was not intentional).
Revision 1857 (Monday, January 31, 2011)
The following changes/fixes are based on user feedback since the release of version 0.9.10 before the weekend.
- Holding down ⌘ when opening attachments/links in external applications keeps MailMate as the active application.
- Added shortcut for changing the identity used when composing an email (⌃⌘I).
- Improved parsing of
Content-Type
to handle whitespace between subtype and ;
.
- Inserted check which could prevent a potential crash when logging a read operation from a server.
- Additional sanity checks on header lines. They were previously allowed to contain non-ASCII. Also introduced an (arbitrary) upper limit on header names (50).
- Less sensible (with regard to whitespace) to subject changes when checking outgoing messages.
- Fixed ’+’ button to correctly support creation of both IMAP and smart mailboes.
- Fixed crash bug triggered when finding no known content types in a multipart/alternative bodypart.
- Fixed bug in the code for viewing an attachment. The attachment was saved every time instead of using a previously cached copy. When viewing an attachment which had been viewed before then it was also opened twice (using different filenames).
Revision 1842 (Friday, January 28, 2011) — Version 0.9.10
MailMate now supports creating, deleting, and renaming IMAP mailboxes. IMAP does not support mailbox renaming which means that in practice it is implemented by creating a new mailbox, moving the messages, and then deleting the old mailbox. The same strategy is used to support drag’n’drop move/copy of IMAP mailboxes.
Important: The support for local files will soon be removed completely. If you have any messages in mailboxes under “SOURCES/Local” then you should move them to IMAP locations as soon as possible.
New/Changed
- Images and files pasted in the text view are now attached to the message instead of ignored (previously only limited support existed and only when MailMate was used on Leopard).
- “Forward as Attachment” implemented.
- When replying to a message sent from yourself, the from/to/cc fields are left unchanged.
- Added scrolling/nextMessage when space is pressed (works both in the messages outline and the message view).
- New Mailbox menu in the main menu showing the same items as previously shown in the mailbox outline.
- Improved handling of email addresses when a “,” appears in the name (like in
"Last, First" <first@example.com>
).
- Improved completion in address fields. No longer stops at a space and “,” can be entered if it is inside double quotes.
- Added “X-Delivered-To” to the set of headers used to derive the from-address for a reply (the other headers are “Delivered-To” and “X-Original-To”).
- Printing now works whenever there is a message viewer in the current layout (previously failed to work when the mailbox outline was in focus).
- The job title of a printing job is now the subject of the message instead of just “Untitled” (also used when saving as PDF).
- A private IMAP namespace is now hidden by default when adding a new account.
- Updated copy menu items for addresses (now it is “Copy”, “Copy Address Only”, and “Copy Name Only”).
- Improved handling of body parts falsely claiming to be ASCII.
- No longer allows new messages to be created when no accounts are configured.
- Added beep sound when trying to attach a folder to a message via drag’n’drop. It is currently not supported. (For now, use Compress in the Finder menu before attaching.)
- Unreplied count now only means unreplied and not flagged and unreplied.
- Small change to the identification of subject prefixes (allowing 3-letter prefix strings such as “Fwd”).
Fixed
- Going to “Root of Thread” now also works when not using “Organize by Thread”.
- Autoscroll new messages into view in the messages outline when sorting is with newest message first (previously only worked for newest message last).
- Crash bug some times triggered when closing a viewer window.
- A font size issue in the messages outline. When changing the font, the font of non-displayed columns were not updated.
- Problem with prefixed spaces in signatures.
- Messages could some times appear in mailboxes where they do not belong.
- Crash bug triggered when trying to undo (or redo) after changing the main layout.
- Crash bug some times triggered when exiting MailMate.
- Minor coloring issues in the mailbox outline.
- The font used for an INBOX in its IDLE state did not have the same size/type as configured for the mailbox outline.
- Counter problem where unread messages were some times not counted.
- Various minor issues revealed by stress-testing the IMAP code.
Revision 1793 (Wednesday, January 12, 2011) — Version 0.9.9
Note that the release notes for revision 1779 are also part of the changes since version 0.9.8. In particular, the notes on importing messages are important since they describe the plan to remove support for local messages. If you have local messages (see “Local” under SOURCES in the mailbox outline) then you should move them into an IMAP account.
This revision of MailMate includes the following changes:
- Added the designer (Justin Lowery) of the MailMate application icon to the credits in the About window.
- Composer: When adding a header field (e.g., Cc) the focus is automatically moved to the new field.
- Composer: When removing a header field (e.g., Cc) the focus is automatically moved to the next header (if the removed header had the focus).
- Fixed problems with unnecessary reloads of the message view, e.g., the scrolling position would be lost at the arrival of new messages.
- Fixed bug which caused MailMate to (very) often ignore attempts to change the type of a mailbox.
- Fixed handling of stored default columns when they did not include any default sorting. In some cases MailMate would refuse to open new message viewers.
- Changed default attachment save location from Desktop to Downloads.
- The “Use as/Revert to Default Columns” menu items are now disabled when the current columns (and sorting/threading) matches the default set.
- Changed some buttons from “Ok” to “OK”.
Revision 1779 (Monday, January 10, 2011)
Import messages
This update includes the first steps towards removing the support for local files. The support for local files in MailMate was never intended to be more than a fallback if something failed when using an IMAP account and there was nowhere else to put it. The support was also very basic and creation/deletion/renaming of folders was not possible at all. Several users have had the need to import messages into MailMate and these were by default added to a local mailbox named “Imported”. The interface for importing has now been improved and the user is instead asked to choose an IMAP mailbox to use (as root) for the import. Progress of the import is also shown if it is not “instant”. A disk folder can also be selected for the import. Note that this has not undergone any extensive testing.
Default columns in messages outline
The messages outline has a context sensitive menu in the headers view which can be used to enable/disable columns. This menu now includes two items for handling a default set of columns. “Use as Default Columns” and “Revert to Default Columns”. The set of defaults includes the choice of threading (flat or threaded), and the current use of sorting order. The handling of column widths has also been improved.
For this to work as well as possible you should clear your current settings for the mailboxes. You can do it by running the following from the Terminal while MailMate is not running:
defaults remove com.freron.MailMate MmMailboxRelatedStates
Various additions
- Included an update of the application icon. It looks even better than before.
- The font of the mailbox outline is now configurable (but there are still issues with the baseline handling of some fonts in the outline views).
- Added “is not within last” as a new date comparison method (for example “Date is not within last 3 days”).
- Added “Any Address” as a shorthand for making comparisons with any address (from, to, cc, bcc).
- Added user interface for editing port settings in the account editor (SMTP and IMAP).
Various fixed bugs
- Import of mbox files now includes handling of lines with “>From” prefixes.
- Fixed decoding problem when saving text attachments. Some times trailing whitespace was stripped.
- Fixed problem when launching MailMate by dragging files to the dock icon.
- Fixed crash bug triggered when launching MailMate via a mailto: link.
- Fixed crash bug which could be triggered when mailboxes were added to or deleted from an IMAP account (remotely).
Revision 1747 (Thursday, December 23, 2010) — Version 0.9.8
Version number is now 0.9.8. Note that the release notes since 0.9.7 includes revisions 1735 and 1731.
In the near future, MailMate is going out of beta with the release of version 1.0. Please report any issues you have with the current version of MailMate. Development (including new features) will continue as seen through the 0.9.x series with regularly released updates.
Changes since revision 1735:
- New application icon.
- Disabled the current support for non-private IMAP namespaces. It will return when it has been improved.
- Mailbox Search (⌥⌘F) is now a toggle, that is, it can be closed with the same shortcut.
- The single message viewer now shows the subject of the message in the title bar.
- When selecting multiple messages the message count shown in the title bar includes children of collapsed items.
- Renamed menu item (Send Again -> Edit as New Message). The menu item has also been added to the context sensitve menu in the messages outline.
- Fixed various problems with the mailbox editor and the mailbox search view.
- Fixed rare IMAP crash bug triggered when reusing a connection to select a mailbox.
- Fixed issues caused by messages with multiple parents (typically caused by duplicates).
Revision 1735 (Monday, December 20, 2010)
- Fixed: Recently introduced SMTP bug which meant that the password requester was never shown if authorization failed.
- Fixed: External resources with https-addresses are no longer ignored.
- Fixed: Crash bug when deleting smart mailboxes.
Revision 1731 (Friday, December 17, 2010)
- Includes the widescreen layout previously described in a blog post (see “View ▸ Layout ▸ Widescreen”).
- The crash reporter scans the system log for relevant information and automatically includes it in the comments.
- Spelling/grammar-state is remembered for the composer.
- Improved tabbing between mailboxes outline and messages outline.
- Added Quick Look toolbar buttons.
- Quick Look is now closed if already open (in order to use ⌘Y as a toggle).
- Fixed bugs in QuickLook code — especially concerning identically named files.
- Saved attachments for QuickLook or “Open Attachment” are re-used.
- Temporarily saved attachments are deleted when a message is deleted.
- Always showing if a message is marked as junk.
- Toolbar-button named “Junk” changed to “Move to Junk”.
- A message is now marked as read before images have been fetched/displayed (works better with slow connections).
- A new draft based on an existing message now also inherits the signature settings.
- When saving passwords in the keychain, the port number is included.
- Several issues concerning deletion of accounts have been fixed.
- The password-requester now has a proper key view loop and first responder.
- It is no longer possible to create cyclic mailbox references in the mailbox editor.
- It is no longer possible to drag a mailbox into a group of which itself is an ancestor.
- Double-clicking a .eml file inside
~/Library/Application Support/MailMate/Messages
now opens it in MailMate instead of importing it (the same is true for dragging it to the MailMate dock icon).
- Fixed problem where quoted-printable encoding was used for a message when it was not really necessary (triggered by long messages).
- Fixed some problems concerning what can and cannot currently be renamed in the mailbox outline.
- Fixed various issues with sorting of mailboxes when renaming (under, for example, Mailing Lists).
- Fixed crash bug in mailbox editor (related to NSComboBox).
- Fixed various data-source problems with the NSComboBoxes in the mailbox editor.
- Fixed tabbing order after adding rows in the mailbox rule editor.
Revision 1706 (Tuesday, December 7, 2010)
The previous release of MailMate was unfortunately a debug-variant which would terminate (intentionally) when dealing with buggy IMAP servers (e.g., after sending a message using Gmail).
This revision is a non-debug release as usual. It also includes the following changes:
- QuickLook support now includes support for ⌘Y which uses QuickLook to display all attachments for the currently selected messages.
- Most of the popup menus in the composer are now drop-down menus. Minor change to the ordering of items in the Signatures menu.
- Fixed crash when copying (not just moving) messages.
Revision 1702 (Friday, December 3, 2010)
- Basic Quick Look support (this is going to be improved).
- Reorganized Signatures menu.
- A mailbox can now display “No Count”.
- Small icons now shown in the attachments-menu.
- Various issues fixed in the composer status bar (including several disabled items in the attachments menu).
- When composing a message, attachments with an unknown MIME type (based on extension) are now identified as text/plain if they are valid utf8.
- Slight improvement to the state shown in the Activity Viewer when uploading messages (formatted size of upload and progress in %).
- Mailbox chooser is now a bit faster when opened the first time.
- Fixed various bugs related to whether or not the filter was enabled for a mailbox (in the mailbox editor).
- Fixed crash bugs triggered on exit (related to threads handling server connections).
- Fixed: Quoted-printable encoding was used in some cases where it was not necessary.
- Fixed “Wrote” date in replies such that days use 1-9 instead of 01-09.
- Fixed potential crash bug in mailbox editor.
- Fixed crash bug triggered when using “View ▸ Distortion Mode”.
- A non-empty private namespace for an IMAP account is now hidden by default (it can be enabled in “Edit Subscriptions…”).
- Shortcuts for the signatures menu (⌃⌘S) and the headers menu (⌃⌘H) in the composer.
- Implemented ‘Use as Default Headers’ in the headers menu.
- Now only shows the From-popup if there is more than 1 option.
- Improved handling of whitespace in signatures. Also moves the caret less often.
- Most IMAP errors are now retried at least once if they fail.
- Now remembers location/size of mailbox editor.
- It is now possible to tab in/out of the signature editor.
- Fixed various problems in the importer
- Decreased default size of subscriptions window.
- Auto-expands items in subscriptions window.
Revision 1658 (Sunday, November 21, 2010)
Numerous changes to the composer. Instead of the attachments view, a status bar is now shown between the headers and the text view. For now, the status bar contains the following
- A popup for selecting which headers to show (to,cc,bcc,reply-to).
- A popup for selecting the from-address to use for the message.
- A popup for selecting the signature to use and its placement (top or bottom).
- A popup for handling attachments.
- A text field for showing the size of the message (currently only when it has been saved).
The support of signatures is new. A blog post is going to describe how it works in detail, but here is a brief description:
- To save a signature for future use, select ‘Store Selection as Signature’ in the signatures menu (after selecting the signature).
- When replying to a message MailMate bases the default signature on the most recent signature used for the same recipient.
- If no previous message to the same recipient exists (with a signature), MailMate bases the default choice on the most frequently used signature for the same from-address.
- Default top/bottom placement is handled similarly.
- Signatures can be created/edited/reordered/deleted in Signatures preferences.
- A general default for top/bottom placement can be set in the Preferences (it is used when the choice cannot be based on older messages).
- The signature is dynamically updated when changing the To-address of the messages. This is especially useful for new messages which are not replies.
A preference option has also been added for setting a sound to be played when a message has been sent. No default sound is included. If you like, you can make a copy of the sound used by another email client (let us know if you know a royalty free “sent message sound” which can be included in MailMate as a default):
cp /Applications/Mail.app/Contents/Resources/Mail\ Sent.aiff ~/Library/Sounds/
Sounds copied to this location are also available for the counters configured in the Counters preferences pane.
Teaser: The implementation for playing the sent message sound is part of a much more general system. It can be used to perform various actions whenever a message enters or leaves the set of messages matching any query.
Other changes include:
- A crash reporter has been added which offers to send (anonymously if preferred) crash reports on startup.
- Experimental support for Growl notifications (see counter preferences).
- Current selection (caret location) is now cached for each draft.
- Fixed some issues with editing SMTP settings (they were essentially ignored).
- Fixed displaying subject headers containing tabs (mostly caused by misuse of tabs when folding as specified in RFC2822). Tabs are replaced with spaces.
- Fixed problem with attaching messages which contained a multipart body.
- Fixed yesterday/today/tomorrow date display bug caused by a time zone issue.
- Fixed attachments column in the messages outline such that it is updated when a message is changed.
- Improved handling of new accounts with regard to default unsubscribed mailboxes.
- Fixed parsing problem of some from-addresses, e.g.
"Foo \"Bar\"" <foo@bar.com>
.
- Fixed and improved computation of set comparisons.
- Fixed problems triggered by event-triggered scripts (this includes the ‘UID already exists’ crashes).
- Fixed crash in mailbox editor.
- Added ‘is not in’ to the set of comparison methods for message queries (experimental).
- Turned of connection wizard until it has been improved.
Revision 1588 (Thursday, October 28, 2010)
- Fixed divide-by-zero bug (could happen when sending a message).
- Fixed newline bug in composer: Text with old style cr newlines would have all newlines stripped when saved.
Revision 1587 (Wednesday, October 27, 2010)
- Fixed serious bug related to the handling of IMAP UIDs. Could result in duplicate messages or even worse, database corruption (local cache, no risk for existing messages on the server though).
- Fixed hierarchy delimiter problem with some IMAP servers.
- Fixed a problem with format=flowed when writing messages containing ’>’.
- Reduced the number of redraws in the message view (a problem introduced by the image blocking code).
- Fixed issues with pasting addresses with newlines into the header fields of a new message.
- Fixed issues with pasting/entering newlines into the subject field.
Revision 1582 (Saturday, October 23, 2010)
MailMate now uses $Junk and $NotJunk flags to control when resources (most often images) are allowed to be fetched from external URLs. When fetching is blocked, a special view is shown stating the reason and the number of resources blocked. Various options are available including fetching the external resources once (“Load Once”). By default MailMate is quite restrictive. External references are blocked for a message if one or more of the following is true:
- It is in a junk mailbox
- It is marked $Junk
- It is in an Inbox or in a mailbox for deleted messages without the $NotJunk flag.
Moving a message in/out of a junk mailbox automatically enables/disables the $Junk flag.
Other changes:
- Fixed the ‘too many files’ problem triggered by a large number of IMAP accounts.
- Added the special IMAP Recent state to the default set of counters.
- Files can now be attached using a file panel (⇧⌘A).
- Fixed IMAP bug which may have caused hanging connections, e.g., after sleep.
- Fixed some performance issues in the mailbox outline.
- Fixed a bug when enabling/disabling distortion mode (potential crash)
- Fixed IMAP parsing bug affecting mailbox names. It would fail for unquoted mailboxes under an INBOX hierarchy, such as INBOX.Drafts (but not for “INBOX.Drafts”).
- Fixed a bug in the code for selecting messages in the same thread as the currently selected message (⌃⌘A). Also changed the shortcut.
Revision 1565 (Friday, October 15, 2010)
Important bug in uploading of drafts and/or sent messages
A serious bug has been found and fixed in the handling of drafts. It affects messages you have edited multiple times and possibly sent using MailMate.
You may already have seen a requester on startup which requires an “OK”. If you did not see it then you are not affected by this problem.
Previous versions of MailMate did not handle drafts correctly if they were edited multiple times. The local copy of the draft would be correct, but the latest draft was not always uploaded to the IMAP server. Sending the message would work correctly (using latest draft), but again, the message in the sent messages mailbox on the IMAP server may actually be an older draft. This version of MailMate schedules verification of all drafts/sent messages on startup. If a problem is found, MailMate uploads the latest draft/sent message, but it does not delete the older draft/sent message on the server. The uploaded messages are flagged and marked as unread such that they can more easily be found. The end result will be that you may have earlier drafts of messages in your drafts mailbox or your sent messages mailbox. To find these, look for any messages related to those which are marked as both unread and flagged.
Sorry for the inconvenience!
Important bug in configuration of SMTP server
A more recent bug was fixed which affected being able to send messages at all. The configured SMTP server for new accounts were simply not saved. For existing accounts this problem is fixed by creating the SMTP configuration when it is needed, but some settings might have been lost, in particular, whether or not to require SSL. In most cases it should work as expected, i.e., MailMate is going to send any drafts currently scheduled for submission. Note that you can enable the State column in the messages outline (for the Drafts mailbox) in order to see the state of Drafts.
Other changes include:
- New General preference option for selecting the default email composer (for “mailto:” links).
- Experimental general Show/Hide system for layouts. Defaults added for mailboxes view and message view. See the “View ▸ Layout” menu.
- New column for the messages outline with the “state” of a message. Turned on by default for the Drafts mailbox. When sending a message, the state is a progress indicator. Moved the now functionally obsoleted Outbound mailbox to the set of default example mailboxes.
- Opening a message via a menu bar counter now takes the application to front, shows the message and makes the message view first responder.
- On exit it is verified that no messages are currently being submitted via SMTP. This should reduce the risk of sending messages multiple times.
- Fixed hanging bug when connections are failing, for example when there are too many connections to the IMAP server.
- Fixed “Edit Source…” such that the changes are applied instead of added (known problem: some SMTP changes are currently ignored).
- Fixed “no attachments” check. MailMate searched for attachment-related words, but never checked if there were any attachments (resulting in false negatives.)
- The flag column in the messages outline can now be sorted.
- Fixed forwarding problems with enclosed messages – it basically never worked and some times crashed.
- Fixed unhandled smtp error related to protocol timeout.
Revision 1532 (Tuesday, October 5, 2010)
Distortion has been improved in order to a bit more useful in practice, e.g., clicking on various search links should actually still work now.
Various problems in the text view of the composer have been fixed. It works better on Snow Leopard now and increase/decrease quoting level works more reliably now. In particular, the current selection is maintained correctly.
An important crash bug was fixed. It was triggered by mailbox names containing one or more single quotes. Also:
- Fixed various problems when displaying a single HTML message.
- The state of the headers view was not saved for the current mailbox when closing a window.
Revision 1504 (Tuesday, September 28, 2010)
MailMate performs a series of checks before sending a message. Simple checks for non-empty subject line and message content have now been extended with more advanced checks:
- A subject change when sending a reply is detected and the user is asked to verify that it really is a reply. Otherwise, reply headers are cleared to ensure proper message threading. This can also be used intentionally to easily create a new message based on an existing message without messing up message threading.
- If certain words are used in unquoted paragraphs of a message or in the subject line of a new message then it is verified that the message has attachments. Currently, this check can be modified by editing a regular expression in the General preferences. Default is “(?i:attached|attachments)”
Message distortion is a new and rather odd, but useful, feature. It can be enabled/disabled using the “View ▸ Distortion Mode” menu item. In distortion mode, the words in most headers and message bodies are replaced with words from lorem ipsum. Word length and capitalization is preserved, but there is no way to get back to the original text. Therefore it can be used to hide the real content of messages. This is useful for creating screenshot examples for bug reports or feature requests without revealing personal information. Note that mailbox names and HTML messages are currently not distorted.
Update: The “no way to get back to the original” is probably true in most cases, but note that one can probably deduce some information based on word length frequencies or similar methods. Also, numbers/amounts are not distorted.
Other changes include:
- The message sizes in the size column of the messages outline are now nicely formatted (instead of raw byte counts).
- Columns with numbers can now be correctly sorted (in particular, message sizes).
- Replying to an HTML-only message works better now (previously, an empty reply was created).
- The choice of small/large headers view is now remembered (for each mailbox; default is small).
- The headersFormatting.plist file is now extendable (can be used to make the large headers view the default).
- The countMenu.plist file is now extendable instead of replaceable.
A standalone test-program has been created (not included) which can be used to stress-test multiple connections to the same IMAP account. Numerous bugs have been found and fixed using this test-program, including
- Various flag-related synchronization problems.
- Some times the last seen UID was incorrectly used to shortcut synchronization.
Various other fixes:
- Fixed: Duplicate attachments would be generated if saving a message with an attachment multiple times (without closing the composer).
- Fixed: A message in a non-existing mailbox which cannot be created could cause repeated alerts of ‘Retry/Take Mailbox Offline’.
- Fixed: 0-count in dock and menu bar were not cleared when shifting between preferences modules.
- Fixed: An “empty preamble” warning was often generated for multipart message which had a correct minimum sized preamble.
Revision 1465 (Thursday, September 9, 2010)
Two experimental features have been added which can be enabled by quitting MailMate and then use the defaults
command in a Terminal.
When possible prefer plain text over html:
defaults write com.freron.MailMate MmPreferPlainText -bool YES
Minimum font size used in the message viewer (for HTML messages):
defaults write com.freron.MailMate MmMessagesWebViewMinimumFontSize -integer 9
New:
- Added ‘Ten Things to Try…’ help page shown once on startup.
- Added ‘All’ item in the headers popup to ensure discovery of matching on the full string (might need a better word than ‘All’).
- The # prefix used for virtual headers is now hidden in the headers popup. The editor has an explanatory footnote.
- Using selected text for quoting in replies/forwards is now controlled by a preferences value: MmUseSelectedTextForReplies (yes by default).
- Added general preferences pane for setting the above value.
- Changed set of available columns for the messages outline. New ‘Mailer’ column.
- More columns can be configured using a custom plist file.
- Simple attachments column added (required some internal changes and the addition of a computed virtual header name #attachments-count).
- Menu bar counters now allow one to open the mailbox without selecting a particular message.
- All link/menu-searches now search in ‘All Messages’ if the option key (⌥) is down.
Other:
- Improved the use of selected text in replies/forwards.
- No longer resizes the outline column in the messages outline when expanding/collapsing items.
- Fixed problem with sorting order not being saved properly for the messages outline.
- Release notes now opened as front most window after software update.
- Fixed relaunch problem which could make MailMate crash instead of nicely exiting.
- Fixed relaunch problem which could cause user defaults to be incorrectly synchronized.
- Fixed some bugs related to IMAP subscriptions (connection could fail on non-ssl connections, …)
- Fixed numerous connection/IMAP related bugs.
- Fixed long standing bug triggered when moving messages via event-based commands.
- Fixed various problems with non-alpha-numeric header names.
- Fixed computation of percentages in the statistics view.
- Fixed computation of maximum value in the statistics view used for the histogram column (it failed when sorting by header).
- Fixed automatic selection of messages to work better when changing the sorting direction (newest messages first).
- Fixed handling of repeatedly failed passwords such that a mailbox/account is taken offline.
- Fixed problem related to trying to delete an empty directory which is actually a symbolic link.
Revision 1415 (Monday, August 23, 2010)
- When replying/forwarding, the quoted text of the new message is based on the text selected in the message view (if any).
- Reduced the work needed to be done by Spotlight (to disable Spotlight indexing of the message files, you should go to Spotlight Preferences and exclude
~/Library/Application Support/MailMate/Messages
in the Privacy settings).
- Available layouts in the “View ▸ Layout” menu are now sorted alphabetically in two separate sets. Default layouts and custom layouts.
- More detailed error messages from the server connections.
- Fixed: Custom layouts now searched for in
~/Library/Application Support/Resources/Layouts
(previous location would make MailMate crash).
- Fixed: When the message view was active the forwarding menu item (and shortcut) would fail.
- Fixed minor connection problem.
Revision 1401 (Friday, August 20, 2010)
Until now, a hidden feature of MailMate was that 4 counters could be configured in the dock icon. This feature is now exposed via a new preferences pane named Counters. It has some noteworthy features:
- Counters can be displayed in the dock and/or the menu bar.
- Menu bar counters include a submenu displaying the 10 latest messages.
- Sounds for the counters can be configured (only triggered when a new message causes the count to go up).
- Custom sounds can be used by placing them in ~/Library/Sounds (/Library/Sounds/ and /Network/Library/Sounds/ are also searched).
By default, two counters are displayed in the dock. The unread count of the Inbox and the number of unreplied messages in the Inbox (flagged, but not answered messages).
The color selection of the preferences pane is not enabled yet. It may help to complain or you can edit the preferences file directly (look for MmCounters).
Other changes:
- The most recently successfully used port is now cached for accounts which has no explicit port.
- Account passwords are now remembered until MailMate is closed IF they are not saved in the Keychain.
- Added standard counter for unreplied messages (flagged messages without the \Answered keyword).
- Improved error handling in the IMAP code.
- Changed wording from LRU to MRU in both code and release notes (Zzzzz…).
- Fixed crash triggered by messages failed to be sent.
- Fixed crash bug which was triggered by a non-existing header specifier.
- Fixed problem with changing font in the webview.
Revision 1365 (Saturday, August 7, 2010)
- Improved ‘Go to Mailbox…’ to remember the most recently used mailboxes.
- Most recently used mailboxes for moves are prioritized in the Move to Mailbox… GUI.
- Added mailbox images and counts to the mailbox chooser windows.
- Deleting messages now works with both Back Space (⌫) and Delete (⌦).
- Find-menu in headers view now possible (by default, currently only configured for the from name).
- Better error handling when IMAP code fails to add/copy a message to a mailbox.
- Better handling of failed moves when it is caused by the missing use of a private namespace (IMAP prefix).
- Fixed crash bug related to attaching an email to a message.
- Fixed crash bug related to unfetched messages being viewed (which should trigger them being fetched ASAP but instead triggered a repeating crash).
- Fixed bug which meant that a password entered in the password requester was not used unless it was also saved in the keychain.
- Fixed sticky flags to work better with searches (previously flag-changed messages would match any subsequent search until changing mailbox selection).
- Fixed recently introduced problem with messages not being selected after deleting/archiving/moving messages.
- Fixed to properly update Content-Transfer-Encoding when adding/removing attachments from a multipart or when changing a text body part.
- Fixed memory leaks after editing mailboxes or accounts.
- Fixed searching via context sensitive menu in WebView (it often failed to work correctly).
- Fixed problem which caused pdf attachments to be auto-viewed in external application.
- Fixed to be more consistent in whether a single message or a thread is deleted.
- Fixed all compiler warnings (currently compiling with -Werror).
- House cleaning: Various refactorings and replacement of deprecated methods.
Revision 1331 (Friday, July 16, 2010)
- Fixed: Crash triggered by viewing a message which is also in the process of being moved to a different mailbox.
- Fixed: Crash when copy failed (due to not being able to create destination mailbox).
- Fixed: Frequent crash bug caused by NOT “ignoring” SIGPIPE signals.
- Fixed: When showing the password requester, the secure text field now contains the most recently entered password (if any).
- Changed import of accounts and made it more robust with regard to unexpected values.
- New IMAP Account… menu item changed to Add IMAP Account…
- The ‘Add/Apply’ button in the IMAP settings is now disabled if required input is missing.
- Slight improvement of handling unknown attachment types.
- Replaced usage of (deprecated) selectedRowEnumerator: method.
Revision 1314 (Saturday, July 10, 2010)
- Various Help Book changes/additions.
Revision 1310 (Wednesday, July 7, 2010)
- Window for basic IMAP account settings introduced.
- Basic IMAP/SMTP wizard for automatically deducing settings based on an email address (see ‘File -> New IMAP Account…’).
- Account settings include the option of requiring SSL. If SSL is not possible connections will fail (both IMAP and SMTP).
- Better handling of failed connections (retrying after 5, 10,… 60 minutes). Previously an account was taken permanently offline after a few quick retries.
- Improved performance when synchronizing changes in flags (server -> client).
- Improved handling of headers which are not used by any queries.
- Fixed bug which could often cause smart mailboxes to not be correctly updated when changed.
- Fixed some bugs in the query system.
- Fixed bug which could make ‘Edit subscriptions…’ hang (the window should not be modal).
- Fixed bug which failed to handle some headers when deleting messages (headers containing ’.’).
Revision 1281 (Friday, June 18, 2010)
- New subscriptions editor available both when importing accounts and in the mailbox context sensitive menu for accounts.
- Support for the IMAP NAMESPACE extension (RFC 2342), i.e., all namespaces are now searched for mailboxes available for subscription.
- Somewhat improved Gmail account import.
- Moving/archiving/junking/deleting messages now include unexpanded children.
- Fixed: Now saving splitter positions for all subviews (the non-collapsible ones were not included before).
- Fixed: Bug slowing down moving a set of messages.
- Fixed: Renaming IMAP accounts.
- Fixed: Crash when dragging messages to a universal mailbox.
- Fixed: Comparison of email-addresses is now case insensitive when constructing replies.
- Fixed: Now X-Original-To is also considered when determining known addresses when constructing replies.
Revision 1263 (Friday, June 4, 2010)
- Major refactoring of (attributed) string formatting of strings based on message headers. Most of it moved to C++ and generalized such that it can now handle multiple addresses in, e.g., the
To
header including, e.g., query links.
- Major performance improvement of IMAP with respect to changes involving a large set of messages (deleting/moving/uploading messages and changing flags).
- Fixed: Numerous IMAP related bugs (the bugs were mainly found while stress-testing the IMAP code).
- Improved universal mailboxes to show more state and allow drag’n’drop.
- Messages ‘junked’ are now automatically marked as read (\Seen)
- Messages waiting to be deleted on server are no longer shown in smart mailboxes (but still shown in red in account mailboxes). The same goes for messages with the \Deleted flag (although the flag is used by MailMate).
- Non-synchronized deletion of messages can be cancelled (using menu item ‘Cancel Deletion of Message’).
- The ‘\Deleted’ flag is now visually indicated in the messages outline using a red dot (better than nothing).
- The ‘\Deleted’ flag can be cleared (using menu item ‘Cancel Deletion of Message’).
- Fixed: A message moved (e.g., from the INBOX) using scripts is now no longer temporarily displayed (flashed) in the INBOX.
- Fixed: Deleting (and thus deselecting) mailboxes did not clear the messages outline view.
- Fixed: Some problems with basing a new message on an existing message or body part.
Revision 1192 (Monday, April 19, 2010)
- An image pasted in the text editor automatically becomes an attachment (temporary solution until inline images are possible).
- Fixed SMTP EHLO such that ip-address is enclosed in […].
- Allow partitioning children to be renamed (in particular, it allows one to rename Mailing List children).
- Fixed problem with using saved threading type (it always used reference threading).
- Default messages outline columns are now more useful for drafts, sent, outbound and junk mailboxes.
- Introduced format-strings for specification of header parsers. This allows one to simplify expressions by using variables (in
specifiers.plist
).
- Fixed problem parsing list-id identifiers containing ‘-’ and other special characters.
Important: Also note the changes described below for revision 1182 which was never released on its own.
Revision 1182 (Thursday, April 15, 2010)
Due to some of the changes described below, it is recommended (but not strictly necessary) to remove the following file after quitting MailMate:
~/Library/Application Support/MailMate/Mailboxes.plist
You should copy the file if you want to copy/paste any existing custom mailboxes to the new Mailboxes.plist file generated by MailMate (make sure to quit MailMate before editing the file).
Noteworthy changes:
- New standard mailbox for junk (spam) messages. Menu item and shortcut for moving messages to the Junk mailbox of the account of the currently selected message.
- Mailbox columns shown are now cached for each mailbox.
- Identities can now be deduced from the x-original-to header (also if only the domain matches). Note: This is mostly untested.
- Introduced basic set of mailbox types (inbox, archive, drafts, sent, trash, junk).
- Default universal standard mailboxes similar to Mail (some improvements still needed).
- Scripts can now be used to move messages, change flags of messages, or play sounds.
- Scripts for moving messages can also move to mailbox types, e.g., to move to the Junk mailbox of the same account as the message is present.
- Default script for playing new mail sound.
- Some changes to the handling of Sources/Identities/Submission files.
- Introduced dynamically displayed children of a given mailbox based on a specific header. This is used to provide a default mailbox showing all mailing list messages in individual submailboxes.
- The chosen count for the badges of non-smart-mailboxes is now also saved in Mailboxes.plist.
- Introduced ‘imagePath’ for mailboxes to display custom images, but no default images are provided yet. It can be used though to display the images used by Mail.
- New Mailbox menu item for setting standard mailboxes.
Noteworthy bugs fixed:
- Fixed IMAP problem which had several manifestations, e.g., a problem in the ‘EXISTS’ response.
- Fixed problem forwarding non-plain-text messages.
- Fixed parsing of subject headers which allowed empty subject prefixes (instead of non-existing).
- Fixed display of addresses in the To-column of the messages outline.
Revision 1141 (Thursday, March 18, 2010)
- Fixed numerous problems with IMAP related to unintended reuse of connections.
- Fixed bug which could cause infinite retries on an IMAP connection while being offline.
- Column layout in the messages outline is now stored with respect to the selected mailbox.
- Fixed crash in parser for Thunderbird preferences.
- Right-clicking mailboxes/messages now selects if not already selected (before showing context-sensitive menus).
- Fixed numerous issues with editing/saving/updating messages, in particular when attachments were involved.
- Added x-spam-status parser and corresponding column for messages outline.
- Fixed bug resulting in use of quoted-printable when it was not needed.
- Fixed some issues related to quoted-printable and format=flowed.
- Improved/fixed choice of encoding for attachments. Now always preferring base64 for media types.
- Fixed problem when replying to messages with occurrences of \r\n in base64-encoded text/plain body parts (apparently generated by Exchange).
Revision 1120 (Sunday, March 7, 2010)
- Increase/Decrease quoting level.
- Messages outline now has proper ‘Source Mailbox’ column displaying mailbox name (any INBOX/ prefix stripped) and source.
Revision 1113 (Saturday, March 6, 2010)
- Improved logging in IMAP code (should help finding a known hard-to-reproduce bug).
- IMAP problems are now reported to the user with the option of taking an account or mailbox offline (but it is not yet done asynchronously).
- Initial experimentation with shortcuts for removing quoted paragraphs in replies (⌘< and ⌘>).
- Fixed positioning bug of headers in the Composer.
- Fixed an issue with first/last name from Address Book where only the first name was used.
- Fixed crash related to opening the Address Book (in the composer).
Revision 1103 (Monday, March 1, 2010)
Most important changes to note:
- New: Mute/Unmute messages, i.e., automatically mark any replies as read (and muted too). Personally addressed messages are currently treated as an exception. When a new message is automatically marked as muted, it is also moved to the location of its muted parent.
- New: ‘Move to Mailbox…’ panel for using the keyboard to move selected messages to another mailbox.
- New: Faster synchronization of non-INBOX-mailboxes (which do not detect keyword changes).
- Changed: Replaced LIST with LSUB when retrieving mailboxes via IMAP (currently still using LIST for INBOX.*).
The LSUB command for IMAP only returns subscribed mailboxes. This may be a problem for some existing IMAP accounts since MailMate does not yet have an interface for changing subscriptions. Especially if these mailboxes have been created by previous versions of MailMate which failed to automatically subscribe new mailboxes.
Other changes:
- Fixed problem with IMAP passwords which contained special characters (they were not quoted).
- Added a few very rudimentary chapters to the manual (Help Book).
- Changed drafts/sent mailboxes to work in the traditional way (based on dedicated mailboxes in each account).
- Fixed crash related to moving messages automatically.
- Allowed more files to be customized by replacement/extension.
- Fixed crash in previousUnreadMessage:.
- Some duplicates avoided when completing recipient names and addresses (not including duplicates in Address Book).
- Completion of email addresses can now handle it when entering both first name and part of last name (and vice versa).
- Dragging a URL to the dock icon will insert the URL in the body of a new message.
- Improved display of headers such that the context sensitive menu makes more sense (simple configurable copy-options for now).
- Fixed some problems with having both tooltips and arrow cursor working in the NSTextView subclass.
- Fixed: Clicking on some links in HTML messages did not work (target = “_blank”).
- Nicer window titles with respect to display of message subject.
- Improved subject-blob-links to use list-id.identifier if possible (instead of the blob itself).
- MIME preambles and epilogues are now stored as virtual headers. Previously, a MIME preamble was stored as a body part which was a nuiscance in several parts of the code.
- Next/Previous Alternative now works even if the root body part is not multipart/alternative.
- Now takes x-original-to/delivered-to into consideration when trying to determine a from address.
- Slow/fast synchronization is handled using a timestamp. Default time is 10 minutes (10*10 minutes for slow sync).
- Handle Gmail problem (and maybe other servers) where a message body cannot be fetched.
- Changed shortcut for ‘Go to Mailbox…’ to match Finder (⇧⌘G).
- Added shortcut for ‘Check Spelling While Typing’ (⌥⌘;).
- The ‘Raw Source’ and HTML display modes are no longer sticky.
- Fixed: Double clicking in the message outline no longer worked for link queries (bug recently introduced).
- Email-addresses included in expanded headers view. Link queries are then also available for both names and addresses.
- Improved parsing of email addresses to handle some special cases.
- The $Forwarding flag is now set for messages when they have been forwarded.
- When expanding a message in the outline, as many children as possible of the message is scrolled into view.
- Fixed: Drag’n’drop of text clippings to the composer text view no longer becomes attachments.
- Favicon in WebView disabled because the ‘read’ state is not updated until the server answers/rejects the request.
- Fixed various layout problems including the disappearing headers view.
Revision 1102 (Monday, March 1, 2010)
Most important changes to note:
- New: Mute/Unmute messages, i.e., automatically mark any replies as read (and muted too). Personally addressed messages are currently treated as an exception. When a new message is automatically marked as muted, it is also moved to the location of its muted parent.
- New: ‘Move to Mailbox…’ panel for using the keyboard to move selected messages to another mailbox.
- New: Faster synchronization of non-INBOX-mailboxes (which do not detect keyword changes).
- Changed: Replaced LIST with LSUB when retrieving mailboxes via IMAP (currently still using LIST for INBOX.*).
The LSUB command for IMAP only returns subscribed mailboxes. This may be a problem for some existing IMAP accounts since MailMate does not yet have an interface for changing subscriptions. Especially if these mailboxes have been created by previous versions of MailMate which failed to automatically subscribe new mailboxes.
Other changes:
- Fixed problem with IMAP passwords which contained special characters (they were not quoted).
- Added a few very rudimentary chapters to the manual (Help Book).
- Changed drafts/sent mailboxes to work in the traditional way (based on dedicated mailboxes in each account).
- Fixed crash related to moving messages automatically.
- Allowed more files to be customized by replacement/extension.
- Fixed crash in previousUnreadMessage:.
- Some duplicates avoided when completing recipient names and addresses (not including duplicates in Address Book).
- Completion of email addresses can now handle it when entering both first name and part of last name (and vice versa).
- Dragging a URL to the dock icon will insert the URL in the body of a new message.
- Improved display of headers such that the context sensitive menu makes more sense (simple configurable copy-options for now).
- Fixed some problems with having both tooltips and arrow cursor working in the NSTextView subclass.
- Fixed: Clicking on some links in HTML messages did not work (target = “_blank”).
- Nicer window titles with respect to display of message subject.
- Improved subject-blob-links to use list-id.identifier if possible (instead of the blob itself).
- MIME preambles and epilogues are now stored as virtual headers. Previously, a MIME preamble was stored as a body part which was a nuiscance in several parts of the code.
- Next/Previous Alternative now works even if the root body part is not multipart/alternative.
- Now takes x-original-to/delivered-to into consideration when trying to determine a from address.
- Slow/fast synchronization is handled using a timestamp. Default time is 10 minutes (10*10 minutes for slow sync).
- Handle Gmail problem (and maybe other servers) where a message body cannot be fetched.
- Changed shortcut for ‘Go to Mailbox…’ to match Finder (⇧⌘G).
- Added shortcut for ‘Check Spelling While Typing’ (⌥⌘;).
- The ‘Raw Source’ and HTML display modes are no longer sticky.
- Fixed: Double clicking in the message outline no longer worked for link queries (bug recently introduced).
- Email-addresses included in expanded headers view. Link queries are then also available for both names and addresses.
- Improved parsing of email addresses to handle some special cases.
- The $Forwarding flag is now set for messages when they have been forwarded.
- When expanding a message in the outline, as many children as possible of the message is scrolled into view.
- Fixed: Drag’n’drop of text clippings to the composer text view no longer becomes attachments.
- Favicon in WebView disabled because the ‘read’ state is not updated until the server answers/rejects the request.
- Fixed various layout problems including the disappearing headers view.
Revision 1053 (Friday, February 12, 2010)
- Added Mailbox Chooser (⌘T).
- Experimental insertion of favicon from the domain of the from address (in the WebView).
- Fixed: Double-clicking inlined images/pdfs now works (a long standing problem with using a javascript bridge).
- Changed: ⇧⌘F now opens mailbox search (⌘[ to cancel/close).
- Changed: Window title always includes the number of messages displayed in the main outline.