nightmaremail

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

mxf-remote.8 (3935B)


      1 .Dd Sep 28, 2022
      2 .Dt mxf-remote 8
      3 .Os
      4 .Sh Name
      5 .Nm mxf-remote
      6 .Nd part of the NightmareMail mail transfer suite which refers messages to be dequeued for foreign hosts to appropriate mail protocol clients
      7 .Sh Synopsis
      8 .Nm mxf-remote
      9 .Ar host
     10 .Ar mailfrom
     11 .Ar rcptto
     12 .Op Ar rcptto...
     13 .Sh Description
     14 .Nm
     15 uses its control files to decide what protocols it supports.
     16 If the host argument is a domain, and there are no <protocol>routes entries calling the domain out,
     17 .Nm
     18 looks up SRV records for the TCP protocol and the mail transfer protocols
     19 .Nm
     20 supports, and MX records for the domain. MX records that conform to MXPS are then mapped against the slicemap in the third field of control/protocols. In default of a slice, they are assigned to slice 0, which you should have set as your SMTP client.
     21 
     22 Having obtained a domain or list of domains to look up, or in default of any response to SRV or MX records (in which case, all protocols are tried), AAAA and A lookups are tried. If a mail exchanger can be found, and it is not us, it is then tried. If a connection succeeds within timeoutconnect, the protocol program mentioned in control/protocol (field 6 of the appropriate protocol) is then executed, using the compiled-in paths to a TLS or UCSPITLS client if it is required by the protocol in question to launch them, with file descriptors 6 and 7 set to the TCP connection and environment variables set as if the program was running under a UCSPI-TCP tool.
     23 .Sh "Control files"
     24 .Bl -tag -width "-w size "
     25 .It <conf-qmail>/control/timeoutconnect
     26 As
     27 .Nm
     28 makes connections on behalf of UCSPITLSCLIENT, TLSCLIENT (compiled in) and the protocol program, it must know how long to wait before considering the connection dead and moving onto the next address, or the next protocol if there are no more addresses, or to report non-delivery if we have reached the last protocol without a response.
     29 .It <conf-qmail>/control/protocols
     30 .Nm
     31 does not perform protocol conversations itself. Instead, it calls a program, defined in control/protocols. In default of this file, a QMTP client is tried with and without TLS, then an SMTP client is tried under a STARTTLS client. If none of these are properly installed at your site, remote delivery will fail. In order, the possible parameters in this file are: service (SRV service), defport (port in default of specific), slice (MXPS slice - may be -1), implicit TLS (Y/N), explicit TLS (Y/N), program.
     32 .It <conf-qmail>/control/ucspitlsclient
     33 .It <conf-qmail>/control/tlsclient
     34 These control files govern explicit and implicit TLS. The default listed in the headers is to use slashpackage s6-ucspitlsclient and s6-tlsc. If you would like to use some other explicit or implicit TLS client, the option to do so is provided through these control files. The facility to pass arguments through the control files is not provided, so point to a script if you would like to use custom arguments (such as sending a client certificate).
     35 .El
     36 
     37 These control files are not used by
     38 .Nm
     39 itself, but their purpose is described here.
     40 .Bl -tag -width "-w size "
     41 .It <conf-qmail>/control/helohost
     42 .It <conf-qmail>/control/timeoutremote
     43 This is the maximum amount of time that the protocol conversation is allowed to take. The client program should set a fuse around the time it begins execution, and die with an exit value that indicates timeout should the conversation go on longer than this many seconds.
     44 .It <conf-qmail>/control/<protocol>routes
     45 qmtpsroutes, qmtproutes and smtproutes are used by
     46 .Nm
     47 for one purpose - short circuiting SRV and MX records which are unnecessary, and moving straight to A/AAAA records and performing the connection.
     48 .El
     49 .Sh See also
     50 .Bl -tag -width "-w size "
     51 .It Xr qmail-remote 8
     52 the original implementation of qmail-remote
     53 .It Xr mxf-remote-smtpc 8
     54 the smtp client in MXF Remote
     55 .It Xr addresses 5
     56 .It Xr envelopes 5
     57 .It Xr qmail-send 5
     58 .It Xr qmail-smtpd 5
     59 .It Xr qmail-control 5
     60 .El