masqmail
view docs/oem-option @ 276:1abc1faeb45d
for -t cmdline args are now added to the rcpt list instead of substracted
Please read the diff and the section about -t in man/masqmail.8.
Masqmail's behavior had been like the one of exim/smail, now it's
similar to postfix.
Masqmail does it now the most simple way, regarding the code.
Also, addr args are always recipients, -t does not change their meaning.
-t makes the addrs from rcpt hdrs, rcpt addrs too.
It would have been logical too, to ignore the cmdline args,
in the sense of ``headers *instead of* args'' but none of the
popular MTAs does it that way and it would have been a bit more
complicated in the code.
Anyway, this is a corner-case that should better be avoided completely.
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Fri, 03 Dec 2010 21:05:34 -0300 |
parents | |
children |
line source
1 -oem
2 ====
4 This document explains what I found out about the -oem/-oee options. It
5 is intended as a knowledge base for further development on this topic.
6 In version 0.3.0 (2010-11), masqmail's implementation of -oem is
7 considered broken and -oee is not implemented.
9 Following is the behavior masqmail actually had:
11 If -oi/-i is given, -oem is ignored.
12 If no -oi/-i is given, always return with a non-zero return code.
14 This current behavior is not like it should be.
17 The desired behavior
18 --------------------
20 It had been difficult to identify good explanations. The problem, as
21 often, is that sendmail's source would be the definitive definition.
22 But in which version and what if common behavior differs from sendmail's
23 (maybe as a result of misunderstanding)? Exim's documentation has proven
24 to be a valuable resource.
26 In exim the behavior is such:
28 If an error is detected while a non-SMTP message is being received
29 (for example, a malformed address), the error is reported to
30 the sender in a mail message. Exim exits with a non-zero return
31 code then, no matter if the error message was successful or not.
32 (In exim, -oee is similar but exim returns successful if the error
33 message had been sent successful.)
35 The mutt wiki writes about ``sendmail -oi -oem'':
37 The mail server (in this case sendmail) will receive the message
38 in input, and will parse it. In case of a malformed message,
39 it will send an error message to the user to whom belongs the
40 MUA trasmitting the message (e.g. user@localhost.localdomain),
41 and it will exit with a non zero exit code: the -oem flag forces
42 the returning of a non zero exit code even in the case the error
43 message has been successfully sent to the local server.
46 What does it mean for masqmail?
47 -------------------------------
49 Masqmail does not send error messages on malformed addresses. It does
50 not much check for syntax. It detects general errors (unexpected EOF,
51 no recipients, max message size exceeded) (see masqmail.c:mode_accept())
52 but simply prints a message to stderr and exits non-zero. I think that
53 currently it is not of need to add some elaborate error handling in
54 this area. Hence, for the implementing of -oem and -oee would do assume
55 that sending the error message does always fail (because we never send
56 any such message) and hence we exit non-zero on error. This is the
57 similar behavior of both options.
59 From 0.3.1 on masqmail will not recognize -oem anymore and thus ignore
60 it like any unknown -oXXX option. It's behavior is then as if error
61 message sending fails.
63 Remind that all this affects only the case of accepting non-SMTP messages
64 on stdin.
67 On the relationship of -oi and -oem
68 -----------------------------------
70 It seems as if the two options should not affect each other; in contrast
71 to the behavior in masqmail before 0.3.1. Their relationship is just
72 that -oem does only affect non-SMTP messages on stdin, which is the
73 typical use case of -oi.
76 meillo