Stephan, On Fri, 10 May 2013, Stephan Bosch wrote: > On 5/10/2013 12:12 PM, Christian Rohmann wrote: > > Hey Stephan, > > > > On 05/09/2013 11:23 PM, Stephan Bosch wrote: > >> It basically acts as a front-end to your normal MTA. First of all, it > >> provides a convenient way to add SMTP AUTH support to any MTA. But the > >> main goal for this project is to implement an SMTP submission server > >> with full support for the LEMONADE profile > >> (https://tools.ietf.org/html/rfc4550). It acts as a proxy server, so it > >> doesn't queue anything; once the client sees a success reply for the > >> message submission, it is already accepted in the actual MTA queue. > > > > I have one remark and one question: > > > > Remark: Don't forget XCLIENT / XFORWARD support to help the "real" MTA > > understand who it's really talking to. > > XCLIENT is already implemented. But, afaik, this is only supported by > Postfix. Exim has the "-bs" command line option. From spec:
-bs This option causes Exim to accept one or more messages by reading SMTP commands on the standard input, and producing SMTP replies on the standard output. SMTP policy controls, as defined in ACLs (see chapter 42) are applied. Some user agents use this interface as a way of passing locally-generated messages to the MTA. In this usage, if the caller of Exim is trusted, or untrusted_set_sender is set, the senders of messages are taken from the SMTP MAIL commands. Otherwise the content of these commands is ignored and the sender is set up as the calling user. Unqualified addresses are automatically qualified using qualify_domain and qualify_recipient, as appropriate, unless the -bnq option is used. The -bs option is also used to run Exim from inetd, as an alternative to using a listening daemon. Exim can distinguish the two cases by checking whether the standard input is a TCP/IP socket. When Exim is called from inetd, the source of the mail is assumed to be remote, and the comments above concerning senders and qualification do not apply. In this situation, Exim behaves in exactly the same way as it does when receiving a message via the listening daemon. Could you implement this interface to a backend server, too? Thanks for your work, regards, Lutz