[Exim] Implementing ODMR

Página superior
Eliminar este mensaje
Responder a este mensaje
Autor: Jakob Hirsch
Fecha:  
A: exim-users
Asunto: [Exim] Implementing ODMR
Hi,

I'm currently coding an ODMR-server (see rfc 2645: on-demand mail relay,
smtp with dynamic ip addresses) to use (especially) with Exim. It works
so far very nice (and was less work than I expected), but I want to make
sure I use a proper concept and don't missed anything that made it
better or easier.

(The ODMR-data is currently in plain files, in the final state it will
get domains and authentication info out of a mysql-db, just like vmail.)

I put the domains in /etc/exim/odmr-domains and have:

local_domains = ...:/etc/exim/odmr-domains

# ODMR-Transport
odmr:
driver = appendfile
directory = /var/spool/odmr/$domain
bsmtp = domain
use_crlf = true
prefix =
suffix =
user = mail
group = mail

# ODMR-Director
odmr_domains:
driver = smartuser
transport = odmr
domains = /etc/exim/odmr-domains


I first had a router that used the odmr-transport, but Exim rejected
external mails for the domains because it was unable to verify the
recipient. (Using a router for this would be cleaner IMO, since the
domains are not really local.)

As you can see every mail gets written to a file in a domain-specific
directory. odmrd sends the files after the ATRN to the client and waits
for the response. I first wanted to let Exim itself send the mails so I
don't have to fiddle myself with SMTP (and its error handling...), but
did not found a possibility. Using -MC would perhaps do it, but I do not
want to use something that is declared explicit for internal use. Maybe
somebody has a better clue and can give me a good hint for this.

Thanks in advance for any help.

I really think ODMR is the best way for delivering mail to clients
without static IPs, e.g. the header information is being kept and
authentication has at least some safety. Of course the final version of
odmrd gets released unter GPL. If somebody's interested I'll be happy to
send him the current work-in-progress. It's currently a perl-script
which gets invoked bei inetd (maybe I'll change this, it was the easiest
way to do it at first) and has only hard-coded authentication (one user)
at this moment, but it works.


--
Bye, Jakob