An often overlooked feature of MailMate (based on user feedback) is the flexible handling of multiple identities. In this blog post I’ll try to describe this feature in more detail. You might find it useful even if you do not have or think you need multiple identities.

In this context, an identity is an email address and, optionally, an associated name. A simple example of multiple identities is when you have multiple IMAP accounts with a single identity for each account. This can be handled by most email clients and mainly requires that an identity can be selected in the composer window.

It is more interesting when you have multiple identities for a single IMAP account. You might be forwarding messages from several POP3/IMAP accounts to a single IMAP account or you might be generating numerous email addresses to avoid spam, but the example I’ll use here is based on my own primary use: Wearing many hats when running a one-person business.

I’ll use example.com instead of freron.com in the following examples to avoid email harvesting, but other than that it is very close to my own use of multiple identities.

Here are some examples of email addresses for which all messages are going to the same IMAP account:

mm-info@example.com, mm-feedback@example.com, mm-sales@example.com, mm-support@example.com, mm-bugs@example.com

Using different email addresses for different purposes makes it easier to filter incoming email, but it also makes it easier for a business to grow, for example, if ever needed it would be easy for me to redirect all sales related questions to a different IMAP account and let someone else answer them.

The mm- prefix is used to avoid directory harvest attacks, but I don’t always remember to use that. For example, I also have mailinglist@example.com.

All of the addresses listed above are, in various ways, publicly available, but I also have a huge number of addresses which I do not share publicly. Nevertheless, my IMAP account settings are quite simple:

Email Addresses

I use my own name as the default “Full Name”, but I could also have chosen to use “Freron Software”. The only explicitly listed email addresses are the ones I use to write new emails from the account (as opposed to replies for which I need most of my addresses). The list of email addresses could also contain explicit names for individual addresses:

mailinglist@example.com, Freron Software <mm-support@example.com>

The explicitly listed email addresses are the ones included in the “From” popup list in the composer window. More importantly, this also means that all of my other email addresses are not shown in the popup list. This helps keep the list short and clean.

MailMate still needs to know all addresses in order to handle replies properly and this is where it gets tricky and difficult to handle for most email clients. To some extent, it is possible to derive the correct “From” address for a reply using the information provided in the headers of a message. For example, here are some of the headers of a message sent to mm-info:

X-Original-To: mm-info@example.com
Delivered-To: mm-info@example.com
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25])
	by example.com (Postfix) with ESMTPS id 2BD4C76004
	for <mm-info@example.com>; Fri, 11 Oct 2013 01:30:17 -0400 (EDT)

Earlier versions of MailMate tried to automatically use such headers to derive the “From” address, but despite many subtle improvements it never worked for all users. In the end I replaced it all with the “Address Pattern” setting. This is a regular expression describing all email addresses which belong to the account owner (see the manual for examples). If such a pattern is provided then MailMate uses it for comparing with addresses found in the X-Original-To, Delivered-To, X-Delivered-To, and Received headers of any replied message.

The address pattern for my IMAP account is .*@freron\.com which simply means that any email address containing @freron.com is one of my email addresses. When replying then the “From” header automatically uses any such address found in the replied message (and the “Full Name” provided for the corresponding account). Furthermore, MailMate also uses the “Address Pattern” to automatically generate a follow-up message if I reply to one of my own sent messages.

Whenever you need to send a new message from an email address which is not explicitly listed in the account settings then you can use the “Customize…” option in the “From” popup in the composer window. The text field shown even offers to complete your address using known addresses from your previously sent messages.

Custom From

The final thing to note is not directly related to the above, but it is a useful feature when dealing with a lot of email aliases. The “Sent Messages” mailbox automatically includes a set of dynamically created mailboxes. One mailbox for each “From” address found. This is done using the “Submailboxes” feature:

Sent Submailboxes