On Mon, Dec 31, 2018 at 08:47:29AM +0000, mabi wrote: > Hi, > > I have an OpenSMTPD on OpenBSD 6.4 MX server which first scans mails with > Amavis (SpamAssassin + ClamAV) and then delivers it using LMTP to Dovecot. > Now all mails first go through Amavis which means that even if the mailbox in > Dovecot does not exist the mail gets processed by Amavis which seems like a > waste of resources. > > Would it possible to have OpenSMTPD first check if the user exists before > passing the mail to Amavis? I have my valid users defined in a PostgreSQL > table called vuser and mapped it as the vusers table in OpenSMTPD. I am using > the table-postgresql extras addon. If the user does not exist then it could > abort the whole process immediately and return something like User not found. > Not sure though if this is possible with OpenSMTPD yet? > > The relevant part of my smtpd.conf file looks like this: > > <...> > table domains postgres:/etc/mail/postgresql.conf > table vusers postgres:/etc/mail/postgresql.conf > > action "local" mbox alias <aliases> > action "relay" relay
pretty sure you just need... action "relay_amavi" relay host smtp://127.0.0.1:10024 virtual <vusers> > action "relay_amavis" relay host smtp://127.0.0.1:10024 > action "lmtp_dovecot" lmtp "/var/dovecot/lmtp" rcpt-to virtual <vusers> > > match for local action "local" > match tag AMAVIS for domain <domains> action "lmtp_dovecot" > match tag AMAVIS for any action "relay" > match from any for domain <domains> action "relay_amavis" > match for any action "relay" > <...> > > Regards, > Mabi > > -- > You received this mail because you are subscribed to [email protected] > To unsubscribe, send a mail to: [email protected] > -- You received this mail because you are subscribed to [email protected] To unsubscribe, send a mail to: [email protected]
