Perdition

homepage: www.vergenet.net/linux/perdition/
alternatives: dovecot.org/ wiki.dovecot.org/ImapProxy

Perdition is an imap proxy, but very different from imapproxy.

When to use Perdition:
  • you need ssl connections between the proxy and the client.
  • you have multiple back end mail storage hosts.
  • you want to proxy POP.
When to use imapproxy:
  • you want to keep persistant imap connections for a web app which would otherwise create and destory a new connection on every page request.

Install

# apt-get install perdition

Configuration

NOTE: i am fairly certain that the perdition documentation is incorrect regarding ssl_key_file: the docs say this is for the public key. but that makes no sense. they must mean private key.
ports:
110 -- pop3
995 -- pop3s
143 -- imap4
993 -- imap4s

NOTE: hostnames do not work in perdition configuration files. It must be an IP address.
/etc/perdition/perdition.imap4.conf
outgoing_server 192.168.0.2
log_facility local5
no_lookup
timeout 40
imap_capability "IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA ACL ACL2=UNION STARTTLS"
ssl_mode tls_listen
ssl_cert_file /etc/certs/mail.riseup.net/cert.pem
ssl_key_file /etc/certs/mail.riseup.net/key.pem

/etc/perdition/perdition.imap4s.conf
outgoing_server 192.168.0.2
log_facility local5
no_lookup
timeout 40
imap_capability "IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA ACL ACL2=UNION STARTTLS"
outgoing_port 143
ssl_mode ssl_listen
ssl_cert_file /etc/certs/mail.riseup.net/cert.pem
ssl_key_file /etc/certs/mail.riseup.net/key.pem

/etc/perdition/perdition.pop3.conf
outgoing_server 192.168.0.2
log_facility local5
no_lookup
timeout 40
ssl_mode tls_listen
ssl_cert_file /etc/certs/mail.riseup.net/cert.pem
ssl_key_file /etc/certs/mail.riseup.net/key.pem

/etc/perdition/perdition.pop3s.conf
outgoing_server 192.168.0.2
log_facility local5
no_lookup
timeout 40
outgoing_port 110
ssl_mode ssl_listen
ssl_cert_file /etc/certs/mail.riseup.net/cert.pem
ssl_key_file /etc/certs/mail.riseup.net/key.pem