I have a dilemma that I don't know how to solve involving Cyrus IMAP and
delivering to LMTP. I've tried Googling and searching the archives but
nothing.
I have unixhierarchysep set to 'yes' for Cyrus, which means that
accounts are 'username@???'.
I'd like to transition Exim to deliver to LMTP as opposed to calling
Cyrus's deliver command manually like I'm doing now. The problem that
I'm having is that the '@' character (at sign) must be escaped in order
for LMTP to accept it.
$ telnet localhost lmtp
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 neo-anime.org LMTP Cyrus v2.2.12 ready
LHLO marge.neo-anime.com
250-neo-anime.org
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-SIZE
250-AUTH EXTERNAL
250 IGNOREQUOTA
MAIL FROM:<andre@???>
250 2.1.0 ok
RCPT TO:<webmaster@???>
550-Mailbox unknown. Either there is no mailbox associated with this
550-name or you do not have authorization to see it.
550 5.1.1 User unknown
RCPT TO:<webmaster\@neo-anime.org>
250 2.1.5 ok
Here are the relevant routers and transport I'm trying:
begin routers
escape_at_sign:
driver = redirect
redirect_router = cyrus_router
domains = +local_domains
data = $local_part\\@$domain
cyrus_router:
driver = accept
domains = +local_domains
transport = cyrus_delivery
begin transports
cyrus_lmtp_delivery:
driver = smtp
rcpt_include_affixes = true
gethostbyname = true
transport_filter = /usr/bin/tr -d \\000
protocol = lmtp
hosts = localhost
allow_localhost
What happens however is that Exim alters the sender address to append
$primary_hostname. In my above LMTP session, the sender address at the
cyrus_transport router ends up being
<webmaster\@neo-anime.org@???> and fails.
I hope I'm not being too confusing and I've made some kind of sense in
this. Has anyone encountered this sort of setup before and have a
solution? Is there a way to escape the '@' character for LMTP delivery?
Thanks for any help.
Andre Nicholson