Hi!

I have OpenSMTPD version 6.8.0.1 running on a FreeBSD 13.0-RELEASE-p6 host with 
opensmtpd-extras-table-mysql version 6.7.1.1 and MySQL 5.7.

For web based e-mail account administration, I have installed Postfixadmin 
3.3.10.

My opensmtpd.conf:
================================================================================
table domains mysql:/usr/local/etc/mail/mysql.conf
table virtuals mysql:/usr/local/etc/mail/mysql.conf

listen on lo0 port 25

action deliver_to_maildir \
        maildir "/usr/vmail/%{dest.domain}/%{dest.user}" \
        virtual <virtuals>

match from any \
        for domain <domains> \
        action deliver_to_maildir
================================================================================

My mysql.conf:
================================================================================
host localhost
username opensmtpd
password ThePassword
database postfixadmin
query_alias SELECT goto FROM alias WHERE address=?;
query_domain SELECT domain FROM domain WHERE domain=?;
================================================================================

Using Postfixadmin, I have created a test domain named mydomain.com, and a test 
address named t...@mydomain.com. On this level, everything appears to work just 
fine. The database tables are as they should, the queries defined in mysql.conf 
work as they should, and creating domains and accounts in Postfixadmin works as 
it should.

However, when trying to send a test e-mail (either from command line with mail, 
or through Postfixadmin's "Send email" function, this happens (taken from smtpd 
-vd -T all):

================================================================================
expand: 0x800faa018: expand_insert() called for 
address:t...@mydomain.com[parent=0x0, rule=0x0]
expand: 0x800faa018: inserted node 0x800e38000
expand: lka_expand: address: t...@mydomain.com [depth=0]
lookup: match "127.0.0.1" as NETADDR in table static:<anyhost> -> true
lookup: match "mydomain.com" as DOMAIN in table proc:domains -> true
rule #1 matched: match from any for domain domains action deliver_to_maildir
lookup: lookup "t...@mydomain.com" as ALIAS in table proc:virtuals -> 
"t...@mydomain.com"
expand: 0x800e270e0: expand_insert() called for 
address:t...@mydomain.com[parent=0x0, rule=0x0]
expand: 0x800e270e0: inserted node 0x800e38600
expand: 0x800faa018: expand_insert() called for 
address:t...@mydomain.com[parent=0x800e38000, rule=0x800e5e000, 
dispatcher=0x800ec58c0]
expand: 0x800faa018: inserted node 0x800e38c00
expand: 0x800e270e0: clearing expand tree
expand: 0x800e270e0: freeing expand tree
debug: aliases_virtual_get: 't...@mydomain.com' resolved to 1 nodes
expand: lka_expand: address: t...@mydomain.com [depth=1]
lookup: match "local" as NETADDR in table static:<anyhost> -> true
lookup: match "mydomain.com" as DOMAIN in table proc:domains -> true
rule #1 matched: match from any for domain domains action deliver_to_maildir
lookup: lookup "t...@mydomain.com" as ALIAS in table proc:virtuals -> 
"t...@mydomain.com"
expand: 0x800e270e0: expand_insert() called for 
address:t...@mydomain.com[parent=0x0, rule=0x0]
expand: 0x800e270e0: inserted node 0x800e38600
expand: 0x800faa018: expand_insert() called for 
address:t...@mydomain.com[parent=0x800e38c00, rule=0x800e5e000, 
dispatcher=0x800ec58c0]
expand: 0x800faa018: inserted node 0x800e39200
expand: 0x800e270e0: clearing expand tree
expand: 0x800e270e0: freeing expand tree
debug: aliases_virtual_get: 't...@mydomain.com' resolved to 1 nodes
expand: lka_expand: address: t...@mydomain.com [depth=2]
...
expand: lka_expand: address: t...@mydomain.com [depth=9]
lookup: match "local" as NETADDR in table static:<anyhost> -> true
lookup: match "mydomain.com" as DOMAIN in table proc:domains -> true
rule #1 matched: match from any for domain domains action deliver_to_maildir
lookup: lookup "t...@mydomain.com" as ALIAS in table proc:virtuals -> 
"t...@mydomain.com"
expand: 0x800e270e0: expand_insert() called for 
address:t...@mydomain.com[parent=0x0, rule=0x0]
expand: 0x800e270e0: inserted node 0x800e38600
expand: 0x800faa018: expand_insert() called for 
address:t...@mydomain.com[parent=0x800e3bc00, rule=0x800e5e000, 
dispatcher=0x800ec58c0]
expand: 0x800faa018: inserted node 0x800e3c200
expand: 0x800e270e0: clearing expand tree
expand: 0x800e270e0: freeing expand tree
debug: aliases_virtual_get: 't...@mydomain.com' resolved to 1 nodes
expand: lka_expand: node too deep.
mproc: lka -> pony : 54 IMSG_SMTP_EXPAND_RCPT
expand: 0x800faa018: clearing expand tree
imsg: pony <- lka: IMSG_SMTP_EXPAND_RCPT (len=54)
smtp: 0x800f3e000: >>> 524 5.2.4 Mailing list expansion problem: 
<t...@mydomain.com>
5ecd7b90a05e9ea6 smtp failed-command command="RCPT To:<t...@mydomain.com>" 
result="524 5.2.4 Mailing list expansion problem: <t...@mydomain.com>"
smtp: 0x800f3e000: IO_LOWAT <io:0x800e46100 fd=11 to=300000 fl=W ib=0 ob=0>
smtp: 0x800f3e000: IO_DATAIN <io:0x800e46100 fd=11 to=300000 fl=R ib=6 ob=0>
smtp: 0x800f3e000: <<< DATA
smtp: 0x800f3e000: >>> 503 5.5.4 Invalid command arguments: No recipient 
specified
5ecd7b90a05e9ea6 smtp failed-command command="DATA" result="503 5.5.4 Invalid 
command arguments: No recipient specified"
smtp: 0x800f3e000: IO_LOWAT <io:0x800e46100 fd=11 to=300000 fl=W ib=0 ob=0>
smtp: 0x800f3e000: IO_DATAIN <io:0x800e46100 fd=11 to=300000 fl=R ib=6 ob=0>
smtp: 0x800f3e000: <<< RSET
smtp: 0x800f3e000: >>> 250 2.0.0 Reset state
================================================================================

I took away the repetitive parts between [depth=2] and [depth=9]. 

As you can see, the alias lookup appears to work just fine -- but instead of 
the message being delivered, the lookup gets repeated ten times after which 
OpenSMTPD returns first 5.2.4 and then 5.5.4.

What am I missing here?

Yours,

Jyri


Reply via email to