I understand the API and documentation are both still "experimental". I'm
using smtpd 6.7.0.
Questions are regarding the conversation which I've pasted below (I've added
line numbers and some formatting for readability).
1. On line 35 the report 'link-connect' has the parameters as specified in
Filters (7) (i.e. rdns fcrdns src dest). The associated filter request (line
36) is supposed to contain the same parameters, but it appears to only contain
the source IP (without port) and the rdns.
2. The associated 'filter-response' report (line 38) has the phase as
'connected' whereas the prior two messages use just 'connect'. It seems as if
these should be consistent because the connection has still yet to be accepted.
3. On line 54, the 'starttls' filter request contains no parameter. Filters
(7) specifies a parameter of 'tls-string'. It would seem the man page is
incorrect here, as the tls session has not been established at this point, and
therefore there cannot be a tls-string to send in the filter request. Is this
filter request supposed to come AFTER the TLS session is negotiated?
Overall, I think the API is brilliant.
Thanks.
1 > config|smtpd-version|6.7.0
2 > config|smtp-session-timeout|300
3 > config|subsystem|smtp-in
4 > config|ready
5 < register|report|smtp-in|link-connect
6 < register|report|smtp-in|link-greeting
7 < register|report|smtp-in|link-identify
8 < register|report|smtp-in|link-tls
9 < register|report|smtp-in|link-disconnect
10 < register|report|smtp-in|link-auth
11 < register|report|smtp-in|tx-reset
12 < register|report|smtp-in|tx-begin
13 < register|report|smtp-in|tx-mail
14 < register|report|smtp-in|tx-rcpt
15 < register|report|smtp-in|tx-envelope
16 < register|report|smtp-in|tx-data
17 < register|report|smtp-in|tx-commit
18 < register|report|smtp-in|tx-rollback
19 < register|report|smtp-in|protocol-client
20 < register|report|smtp-in|protocol-server
21 < register|report|smtp-in|filter-report
22 < register|report|smtp-in|filter-response
23 < register|report|smtp-in|timeout
24 < register|filter|smtp-in|connect
25 < register|filter|smtp-in|helo
26 < register|filter|smtp-in|ehlo
27 < register|filter|smtp-in|starttls
28 < register|filter|smtp-in|auth
29 < register|filter|smtp-in|mail-from
30 < register|filter|smtp-in|rcpt-to
31 < register|filter|smtp-in|data
32 < register|filter|smtp-in|data-line
33 < register|filter|smtp-in|commit
34 < register|ready
35 >
report|0.6|1589599841.074113|smtp-in|link-connect|97ccbb42906c0f1d|localhost|pass|127.0.0.1:11347|127.0.0.1:25
36 >
filter|0.6|1589599841.074153|smtp-in|connect|97ccbb42906c0f1d|94311a5a7f28292a|localhost|127.0.0.1
37 < filter-result|97ccbb42906c0f1d|94311a5a7f28292a|proceed
38 >
report|0.6|1589599841.074953|smtp-in|filter-response|97ccbb42906c0f1d|connected|proceed
39 >
report|0.6|1589599841.074956|smtp-in|protocol-server|97ccbb42906c0f1d|220
mx1.exampleb.com ESMTP OpenSMTPD
40 >
report|0.6|1589599841.074960|smtp-in|link-greeting|97ccbb42906c0f1d|mx1.exampleb.com
41 >
report|0.6|1589599841.077888|smtp-in|protocol-client|97ccbb42906c0f1d|EHLO
example.com
42 >
filter|0.6|1589599841.077917|smtp-in|ehlo|97ccbb42906c0f1d|94311a5ca4a9b917|example.com
43 < filter-result|97ccbb42906c0f1d|94311a5ca4a9b917|proceed
44 >
report|0.6|1589599841.078509|smtp-in|filter-response|97ccbb42906c0f1d|ehlo|proceed
45 >
report|0.6|1589599841.078512|smtp-in|link-identify|97ccbb42906c0f1d|EHLO|example.com
46 >
report|0.6|1589599841.078516|smtp-in|protocol-server|97ccbb42906c0f1d|250-mx1.exampleb.com
Hello example.com [127.0.0.1], pleased to meet you
47 >
report|0.6|1589599841.078519|smtp-in|protocol-server|97ccbb42906c0f1d|250-8BITMIME
48 >
report|0.6|1589599841.078522|smtp-in|protocol-server|97ccbb42906c0f1d|250-ENHANCEDSTATUSCODES
49 >
report|0.6|1589599841.078524|smtp-in|protocol-server|97ccbb42906c0f1d|250-SIZE
36700160
50 >
report|0.6|1589599841.078526|smtp-in|protocol-server|97ccbb42906c0f1d|250-DSN
51 >
report|0.6|1589599841.078528|smtp-in|protocol-server|97ccbb42906c0f1d|250-STARTTLS
52 >
report|0.6|1589599841.078530|smtp-in|protocol-server|97ccbb42906c0f1d|250 HELP
53 >
report|0.6|1589599841.080841|smtp-in|protocol-client|97ccbb42906c0f1d|STARTTLS
54 >
filter|0.6|1589599841.080896|smtp-in|starttls|97ccbb42906c0f1d|94311a5d0a743072|
55 < filter-result|97ccbb42906c0f1d|94311a5d0a743072|proceed
56 >
report|0.6|1589599841.081532|smtp-in|filter-response|97ccbb42906c0f1d|tls|proceed
57 >
report|0.6|1589599841.081536|smtp-in|protocol-server|97ccbb42906c0f1d|220 2.0.0
Ready to start TLS
58 >
report|0.6|1589599841.107806|smtp-in|link-tls|97ccbb42906c0f1d|TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256
59 >
report|0.6|1589599841.109312|smtp-in|protocol-client|97ccbb42906c0f1d|EHLO
example.com
60 >
filter|0.6|1589599841.109345|smtp-in|ehlo|97ccbb42906c0f1d|94311a5ca4a9b917|example.com
61 < filter-result|97ccbb42906c0f1d|94311a5ca4a9b917|proceed
62 >
report|0.6|1589599841.109938|smtp-in|filter-response|97ccbb42906c0f1d|ehlo|proceed
63 >
report|0.6|1589599841.109941|smtp-in|link-identify|97ccbb42906c0f1d|EHLO|example.com
64 >
report|0.6|1589599841.109945|smtp-in|protocol-server|97ccbb42906c0f1d|250-mx1.exampleb.com
Hello example.com [127.0.0.1], pleased to meet you
65 >
report|0.6|1589599841.109948|smtp-in|protocol-server|97ccbb42906c0f1d|250-8BITMIME
66 >
report|0.6|1589599841.109953|smtp-in|protocol-server|97ccbb42906c0f1d|250-ENHANCEDSTATUSCODES
67 >
report|0.6|1589599841.109969|smtp-in|protocol-server|97ccbb42906c0f1d|250-SIZE
36700160
68 >
report|0.6|1589599841.109971|smtp-in|protocol-server|97ccbb42906c0f1d|250-DSN
69 >
report|0.6|1589599841.109973|smtp-in|protocol-server|97ccbb42906c0f1d|250 HELP
70 >
report|0.6|1589599841.112363|smtp-in|protocol-client|97ccbb42906c0f1d|MAIL
FROM:<[email protected]>
71 >
filter|0.6|1589599841.112391|smtp-in|mail-from|97ccbb42906c0f1d|94311a5fadb1d5e7|[email protected]
72 < filter-result|97ccbb42906c0f1d|94311a5fadb1d5e7|proceed
73 >
report|0.6|1589599841.113068|smtp-in|filter-response|97ccbb42906c0f1d|mail-from|proceed
74 >
report|0.6|1589599841.113617|smtp-in|protocol-server|97ccbb42906c0f1d|250 2.0.0
Ok
75 >
report|0.6|1589599841.113619|smtp-in|tx-begin|97ccbb42906c0f1d|c231ed62
76 >
report|0.6|1589599841.113620|smtp-in|tx-mail|97ccbb42906c0f1d|c231ed62|ok|[email protected]
77 >
report|0.6|1589599841.115008|smtp-in|protocol-client|97ccbb42906c0f1d|RCPT
TO:<[email protected]>
78 >
filter|0.6|1589599841.115037|smtp-in|rcpt-to|97ccbb42906c0f1d|94311a604a6bcd98|[email protected]
79 < filter-result|97ccbb42906c0f1d|94311a604a6bcd98|proceed
80 >
report|0.6|1589599841.115632|smtp-in|filter-response|97ccbb42906c0f1d|rcpt-to|proceed
81 >
report|0.6|1589599841.116809|smtp-in|tx-envelope|97ccbb42906c0f1d|c231ed62|c231ed62518e7904
82 >
report|0.6|1589599841.116814|smtp-in|protocol-server|97ccbb42906c0f1d|250 2.1.5
Destination address valid: Recipient ok
83 >
report|0.6|1589599841.116817|smtp-in|tx-rcpt|97ccbb42906c0f1d|c231ed62|ok|[email protected]
84 >
report|0.6|1589599841.117897|smtp-in|protocol-client|97ccbb42906c0f1d|DATA
85 >
filter|0.6|1589599841.117936|smtp-in|data|97ccbb42906c0f1d|94311a6147b9b18f|
86 < filter-result|97ccbb42906c0f1d|94311a6147b9b18f|proceed
87 >
report|0.6|1589599841.118534|smtp-in|filter-response|97ccbb42906c0f1d|data|proceed
88 >
filter|0.6|1589599841.119196|smtp-in|data-line|97ccbb42906c0f1d|94311a62f693495e|Received:
from example.com (localhost [127.0.0.1])
89 >
filter|0.6|1589599841.119201|smtp-in|data-line|97ccbb42906c0f1d|94311a62f693495e|
by mx1.exampleb.com (OpenSMTPD) with ESMTPS id c231ed62
(TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO)
90 >
filter|0.6|1589599841.119203|smtp-in|data-line|97ccbb42906c0f1d|94311a62f693495e|
for <[email protected]>;
91 >
filter|0.6|1589599841.119205|smtp-in|data-line|97ccbb42906c0f1d|94311a62f693495e|
Fri, 15 May 2020 19:30:41 -0800 (AKDT)
92 >
report|0.6|1589599841.119038|smtp-in|protocol-server|97ccbb42906c0f1d|354 Enter
mail, end with "." on a line by itself
93 >
report|0.6|1589599841.119040|smtp-in|tx-data|97ccbb42906c0f1d|c231ed62|ok
94 >
filter|0.6|1589599841.120794|smtp-in|data-line|97ccbb42906c0f1d|94311a62f693495e|Date:
Fri, 15 May 2020 19:30:41 -0800
95 >
filter|0.6|1589599841.120798|smtp-in|data-line|97ccbb42906c0f1d|94311a62f693495e|To:
[email protected]
96 >
filter|0.6|1589599841.120800|smtp-in|data-line|97ccbb42906c0f1d|94311a62f693495e|From:
[email protected]
97 >
filter|0.6|1589599841.120801|smtp-in|data-line|97ccbb42906c0f1d|94311a62f693495e|Subject:
test-mail
98 >
filter|0.6|1589599841.120803|smtp-in|data-line|97ccbb42906c0f1d|94311a62f693495e|X-Mailer:
swaks v20130209.0 jetmore.org/john/code/swaks/
99 >
filter|0.6|1589599841.120806|smtp-in|data-line|97ccbb42906c0f1d|94311a62f693495e|
100 >
filter|0.6|1589599841.120808|smtp-in|data-line|97ccbb42906c0f1d|94311a62f693495e|This
is a test mailing
101 >
filter|0.6|1589599841.120809|smtp-in|data-line|97ccbb42906c0f1d|94311a62f693495e|
102 >
filter|0.6|1589599841.120811|smtp-in|data-line|97ccbb42906c0f1d|94311a62f693495e|.
103 < filter-dataline|97ccbb42906c0f1d|94311a62f693495e|Test
Header: This is a test of header insertion
104 < filter-dataline|97ccbb42906c0f1d|94311a62f693495e|Received:
from example.com (localhost [127.0.0.1])
105 < filter-dataline|97ccbb42906c0f1d|94311a62f693495e| by
mx1.exampleb.com (OpenSMTPD) with ESMTPS id c231ed62
(TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO)
106 < filter-dataline|97ccbb42906c0f1d|94311a62f693495e| for
<[email protected]>;
107 < filter-dataline|97ccbb42906c0f1d|94311a62f693495e| Fri, 15
May 2020 19:30:41 -0800 (AKDT)
108 < filter-dataline|97ccbb42906c0f1d|94311a62f693495e|Date:
Fri, 15 May 2020 19:30:41 -0800
109 < filter-dataline|97ccbb42906c0f1d|94311a62f693495e|To:
[email protected]
110 < filter-dataline|97ccbb42906c0f1d|94311a62f693495e|From:
[email protected]
111 < filter-dataline|97ccbb42906c0f1d|94311a62f693495e|Subject:
test-mail
112 < filter-dataline|97ccbb42906c0f1d|94311a62f693495e|X-Mailer:
swaks v20130209.0 jetmore.org/john/code/swaks/
113 < filter-dataline|97ccbb42906c0f1d|94311a62f693495e|
114 < filter-dataline|97ccbb42906c0f1d|94311a62f693495e|This is a
test mailing
115 < filter-dataline|97ccbb42906c0f1d|94311a62f693495e|
116 < filter-dataline|97ccbb42906c0f1d|94311a62f693495e|.
117 >
report|0.6|1589599841.123260|smtp-in|protocol-client|97ccbb42906c0f1d|.
118 >
filter|0.6|1589599841.123297|smtp-in|commit|97ccbb42906c0f1d|94311a6381db3e1e|
119 < filter-result|97ccbb42906c0f1d|94311a6381db3e1e|proceed
120 >
report|0.6|1589599841.123802|smtp-in|filter-response|97ccbb42906c0f1d|commit|proceed
121 >
report|0.6|1589599841.124694|smtp-in|protocol-server|97ccbb42906c0f1d|250 2.0.0
c231ed62 Message accepted for delivery
122 >
report|0.6|1589599841.124697|smtp-in|tx-commit|97ccbb42906c0f1d|c231ed62|723
123 >
report|0.6|1589599841.124699|smtp-in|tx-reset|97ccbb42906c0f1d|c231ed62
124 >
report|0.6|1589599841.131674|smtp-in|protocol-client|97ccbb42906c0f1d|QUIT
125 >
report|0.6|1589599841.132018|smtp-in|filter-response|97ccbb42906c0f1d|quit|proceed
126 >
report|0.6|1589599841.132023|smtp-in|protocol-server|97ccbb42906c0f1d|221 2.0.0
Bye
127 >
report|0.6|1589599841.132281|smtp-in|link-disconnect|97ccbb42906c0f1d
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Monday, May 18, 2020 10:44 PM, <[email protected]> wrote:
> Here is fine yes
>
> May 19, 2020 3:46 AM, [email protected] wrote:
>
>> OpenSMTPd 6.7.0
>> Based upon Filters(7) I have written a proof-of-concept filter which is
>> functioning properly
>> I have several questions about the details of the API.
>> Is this the most appropriate forum for such questions?