Hi again.

My mail server has been running fine since last weekend, and I'm trying to 
expand its functionality by including the ability to send and receive mail for 
my list of domains, and for eMail addresses which forward to locally defined 
users -- but I can't seem to get it working, and I think the issue is my 
(mis-)understanding of how the match parameter works...

In order to get virtual users working, I've added three lines to the config:

> table vusers file:/etc/mail/vusers
> action "vusers" maildir junk virtual <vusers>
> match from any for domain <domains> rcpt-to virtual <vusers> action "vusers"

I was able to get mail delivered for local users to my virtual domains 
previously without issue.  But I can't get virtual addresses working...

I've tried a half a dozen varieties of the match command, and I keep getting 
'syntax error', and it doesn't give me any hint as to what exactly the problem 
is.  I want to accept eMail from any destination, to the domains defined in the 
domains table, that are sending to recipients listed in the vusers table, to 
deliver them to the maildir for access via Dovecot IMAP.

Any help in getting this working would be appreciated.

Here's my config:

> #       $OpenBSD: smtpd.conf,v 1.11 2018/06/04 21:10:58 jmc Exp $
> 
> # This is the smtpd server system-wide configuration file.
> # See smtpd.conf(5) for more information.
> 
> table aliases file:/etc/mail/aliases
> table domains db:/etc/mail/domains.db
> table vusers file:/etc/mail/vusers
> 
> # To accept external mail, replace with: listen on all
> #
> # listen on all
> 
> action "local_mail" maildir junk alias <aliases>
> action "vusers" maildir junk virtual <vusers>
> action "outbound" relay helo mail.example.com
> 
> match from any for domain <domains> action "local_mail"
> match for local action "local_mail"
> match for any action "outbound"
> 
> pki mail.hottub.ca cert "/etc/ssl/mail.example.fullchain.pem"
> pki mail.hottub.ca key "/etc/ssl/private/mail.example.key"
> 
> filter check_dyndns phase connect match rdns regex { '.*\.dyn\..*', 
> '.*\.dsl\..*' } \
>     disconnect "550 you look like a spammer"
> 
> filter check_rdns phase connect match !rdns \
>     disconnect "550 you look like a spammer"
> 
> filter check_fcrdns phase connect match !fcrdns \
>     disconnect "550 you look like a spammer"
> 
> filter senderscore \
>     proc-exec "filter-senderscore -blockBelow 10 -junkBelow 70 -slowFactor 
> 5000"
> 
> filter rspamd proc-exec "filter-rspamd"
> 
> listen on all tls pki mail.example.ca \
>     filter { check_dyndns, check_rdns, check_fcrdns, senderscore, rspamd }
> 
> listen on all port submission tls-require pki mail.hottub.ca auth filter 
> rspamd
> 
> match from any for domain "mail.example.ca" action "local_mail"
> match from any for domain <domains> rcpt-to virtual <vusers> action "vusers"
> match for local action "local_mail"
> 
> match from any auth for any action "outbound"
> match for any action "outbound"
> 

Reply via email to