Look for poolporg on GitHub. He has a filter-eventlog that you can look at for inspiration.
Edgar On Sep 5, 2019 5:37 AM, Reio Remma <[email protected]> wrote: > > On 05/09/2019 13:32, Martijn van Duren wrote: > > On 9/5/19 11:55 AM, Reio Remma wrote: > >> On 05/09/2019 11:33, [email protected] wrote: > >>> Yes, see the smtpd.conf(5) man page: > >>> > >>> filter myreporter proc-exec "/tmp/reporting.sh" > >>> > >>> listen on [...] filter myreporter > >> mproc: pony -> lka : 291 IMSG_SMTP_EXPAND_RCPT > >> > >> SMTPD seems to get stuck here with no errors. This is with the simple: > >> > >> filter reporter proc-exec "/etc/opensmtpd/reporter.sh" > >> > >> #!/bin/sh > >> while read line; do > >> echo $line >> /var/log/opensmtpd.log > >> done > >> > >> Reio > >> > > You need to register what events you want to receive and finish up with > > register > > > > $ cat test.sh > > #!/bin/sh > > > > while read line; do > > echo $line >&2 > > if [ "${line%%\ > > if [ "${line#*\ > > echo "register > > echo "register > > fi > > continue > > fi > > done > > > > Possible values for report are (from lka_report.c): > > static struct smtp_events { > > const char *event; > > } smtp_events[] = { > > { "link-connect" }, > > { "link-disconnect" }, > > { "link-greeting" }, > > { "link-identify" }, > > { "link-tls" }, > > { "link-auth" }, > > > > { "tx-reset" }, > > { "tx-begin" }, > > { "tx-mail" }, > > { "tx-rcpt" }, > > { "tx-envelope" }, > > { "tx-data" }, > > { "tx-commit" }, > > { "tx-rollback" }, > > > > { "protocol-client" }, > > { "protocol-server" }, > > > > { "filter-response" }, > > > > { "timeout" }, > > }; > > > > Possible values for filter are: > > static struct filter_exec { > > enum filter_phase phase; > > const char *phase_name; > > int (*func)(struct filter_session *, struct > >filter *, uint64_t, const char *); > > } filter_execs[FILTER_PHASES_COUNT] = { > > { FILTER_CONNECT, "connect", filter_builtins_connect }, > > { FILTER_HELO, "helo", filter_builtins_helo }, > > { FILTER_EHLO, "ehlo", filter_builtins_helo }, > > { FILTER_STARTTLS, "starttls", filter_builtins_notimpl }, > > { FILTER_AUTH, "auth", filter_builtins_notimpl }, > > { FILTER_MAIL_FROM, "mail-from", filter_builtins_mail_from > >}, > > { FILTER_RCPT_TO, "rcpt-to", filter_builtins_rcpt_to }, > > { FILTER_DATA, "data", filter_builtins_notimpl }, > > { FILTER_DATA_LINE, "data-line", filter_builtins_notimpl }, > > { FILTER_RSET, "rset", filter_builtins_notimpl }, > > { FILTER_QUIT, "quit", filter_builtins_notimpl }, > > { FILTER_NOOP, "noop", filter_builtins_notimpl }, > > { FILTER_HELP, "help", filter_builtins_notimpl }, > > { FILTER_WIZ, "wiz", filter_builtins_notimpl }, > > { FILTER_COMMIT, "commit", filter_builtins_notimpl }, > > }; > > > > reports come in in the format: > > report > > > > filters come in in the format: > > filter > > > > Note that filters require a proceed, rewrite, reject, or disconnect > > reply in the form: > > > > filter-result > > filter-result > > filter-result > > filter-result > > > > Note that this is mostly stable, but some changes may occur, so > > keep track of the version. Minor versions are backwards compatible, > > major versions are not. > > > > Thanks! I'll keep digging. :) > > Reio >
