Emails to @torproject.org addresses now go through a LDAP distributed email system. This system uses the forwarding field in the LDAP directory to route mail without passing it through a users .forward file on a single host. Multiple machines participate in the forwarding to provide redundancy.
Each forwarders inspects the LDAP database to see if firstname.lastname@example.org has forwarding set to an address, if so the envelope to address is rewritten and the message redirected to the new address. Otherwise the message is relayed to *.torproject.org for processing by the users .forward files. If email forwarding is setup then .forward files are NOT considered. Extension addresses (foo-lists) are always routed directly to master for processing.
All machines also use the forwarding attribute as a default destination for email. If the user has a home directory and no .forward file the mail is forwarded rather than delivered to /var/spool/mail. This makes sure cron reports, bug responses and other unexpected emails are not misplaced.
If you set the forwarding address to be a specific Tor machine and do not create a forward file then that machine will spool the mail to /var/spool/mail instead of creating a mail loop.
The email forwarding can be easily reconfigured using GnuPG:
echo "emailforward: email@example.com" | gpg --clearsign | mail firstname.lastname@example.org by visiting db.torproject.org
You can test the email routing by using the command /usr/sbin/exim -bt email@example.com
procmailIf you use procmail for your main mailbox, PLEASE, erase your .forward file and put a .procmailrc in its place instead. This feature has been supported on torproject.org machines for a good while now, and will continue to be supported. .procmailrc files won't be synchronised to all hosts in the LDAP directory.
The correct way to invoke procmail for extension addresses is "|/usr/bin/procmail [options]" Ignore the IFS=".." stuff in the procmail man page.
MailBox formatsEmail can be saved to mailboxes or maildirs by using the correct lines in a .forward file:
Mailbox format files "/tor/home/foo/Mbox"
Maildir format files "/tor/home/foo/MDir/"
To deliver to /var/spool/mail/foo use a construct like '|/usr/bin/procmail -m /dev/null'. Putting the mailbox path will not work. You must use absolute paths for mailboxes, qmail-like ./ paths are not supported by Exim.
Also, 'Exim Filter' files are deliberately turned off.