Re: Mailing list expansion problem.

2019-11-01 Thread Reio Remma

On 02.11.2019 0:41, Reio Remma wrote:

On 31.10.2019 10:06, gil...@poolp.org wrote:

October 26, 2019 1:23 PM, "Reio Remma"  wrote:


On 26/10/2019 14:18, Reio Remma wrote:


On the subject of catch all aliases, I tried adding one to my setup > with odd 
results.

My usual setup with virtual users:

action deliver_lmtp lmtp "/var/run/dovecot/lmtp" rcpt-to virtual >  
userbase 

match from any for domain  rcpt-to  action > deliver_lmtp

To get catch all working, I had to remove rcpt-to  from > the match:

match from any for domain  action deliver_lmtp

Otherwise the response was: 550 Invalid recipient:

One I removed the actual catch all alias and sent mail to a > non-existent 
account, the usual:

550 Invalid recipient:

turned into:

524 5.2.4 Mailing list expansion problem:

Any ideas how I could use a catch all alias _and_ get a proper 550 > Invalid 
recipient if I don't?

This is all with the current (v6.6) portable from a week ago or so.

This error occurs when aliases expansion encounters an error during its 
processing,
there's not enough info here to understand what happened in the expansion loop:

- it is likely a table content issue either in virtuals or in userinfo table or 
both
- using `smtpd -dv -T expand` will help you understand what went wrong during 
expansion

Gilles


A couple of hours reading code and I'm fairly certain catchall aliases 
don't work at all with database backends.


Mailaddr lookups from static tables use mailaddr_match to compare 
address parts with catchall aliases, but table-mysql for example 
doesn't do any extra work.


expand: 0x23b6628: expand_insert() called for 
address:du...@domain.com[parent=(nil), rule=(nil)]

expand: 0x23b6628: inserted node 0x23b8320
expand: lka_expand: address: du...@domain.com [depth=0]
lookup: match "209.85.167.41" as NETADDR in table static: -> true
lookup: match "domain.com" as DOMAIN in table static: -> 
true
lookup: match "sen...@gmail.com" as MAILADDR in table proc:blacklist -> 
false

lookup: match "209.85.167.41" as NETADDR in table static: -> true
lookup: match "domain.com" as DOMAIN in table proc:domains -> true
lookup: match "du...@domain.com" as MAILADDR in table proc:recipients -> 
false
lookup: match "209.85.167.41" as NETADDR in table static: -> 
false

lookup: match "209.85.167.41" as NETADDR in table static: -> true
lookup: match "domain.com" as DOMAIN in table static: -> 
true
lookup: match "209.85.167.41" as NETADDR in table static: -> 
false

lookup: match "209.85.167.41" as NETADDR in table static:sources -> false
no rule matched

The only query I see in the query log is trying to match the full 
recipient address:


SELECT mailaddr FROM virtuals WHERE mailaddr = 'du...@domain.com'

This works:

match from any for domain  rcpt-to {'@domain.com', ... } action 
deliver


This doesn't:

match from any for domain  rcpt-to  
action deliver




Re: Mailing list expansion problem.

2019-11-01 Thread Reio Remma

On 31.10.2019 10:06, gil...@poolp.org wrote:

October 26, 2019 1:23 PM, "Reio Remma"  wrote:


On 26/10/2019 14:18, Reio Remma wrote:


On the subject of catch all aliases, I tried adding one to my setup > with odd 
results.

My usual setup with virtual users:

action deliver_lmtp lmtp "/var/run/dovecot/lmtp" rcpt-to virtual >  
userbase 

match from any for domain  rcpt-to  action > deliver_lmtp

To get catch all working, I had to remove rcpt-to  from > the match:

match from any for domain  action deliver_lmtp

Otherwise the response was: 550 Invalid recipient: 

One I removed the actual catch all alias and sent mail to a > non-existent 
account, the usual:

550 Invalid recipient: 

turned into:

524 5.2.4 Mailing list expansion problem: 

Any ideas how I could use a catch all alias _and_ get a proper 550 > Invalid 
recipient if I don't?

This is all with the current (v6.6) portable from a week ago or so.


This error occurs when aliases expansion encounters an error during its 
processing,
there's not enough info here to understand what happened in the expansion loop:

- it is likely a table content issue either in virtuals or in userinfo table or 
both
- using `smtpd -dv -T expand` will help you understand what went wrong during 
expansion

Gilles


A couple of hours reading code and I'm fairly certain catchall aliases 
don't work at all with database backends.


Mailaddr lookups from static tables use mailaddr_match to compare 
address parts with catchall aliases, but table-mysql for example doesn't 
do any extra work.


Reio


Re: Mailing list expansion problem.

2019-10-31 Thread gilles
October 26, 2019 1:23 PM, "Reio Remma"  wrote:

> On 26/10/2019 14:18, Reio Remma wrote:
> 
>> On the subject of catch all aliases, I tried adding one to my setup > with 
>> odd results.
>> 
>> My usual setup with virtual users:
>> 
>> action deliver_lmtp lmtp "/var/run/dovecot/lmtp" rcpt-to virtual > 
>>  userbase 
>> 
>> match from any for domain  rcpt-to  action > 
>> deliver_lmtp
>> 
>> To get catch all working, I had to remove rcpt-to  from > the 
>> match:
>> 
>> match from any for domain  action deliver_lmtp
>> 
>> Otherwise the response was: 550 Invalid recipient: 
>> 
>> One I removed the actual catch all alias and sent mail to a > non-existent 
>> account, the usual:
>> 
>> 550 Invalid recipient: 
>> 
>> turned into:
>> 
>> 524 5.2.4 Mailing list expansion problem: 
>> 
>> Any ideas how I could use a catch all alias _and_ get a proper 550 > Invalid 
>> recipient if I don't?
> 
> This is all with the current (v6.6) portable from a week ago or so.


This error occurs when aliases expansion encounters an error during its 
processing,
there's not enough info here to understand what happened in the expansion loop:

- it is likely a table content issue either in virtuals or in userinfo table or 
both
- using `smtpd -dv -T expand` will help you understand what went wrong during 
expansion

Gilles



Re: Mailing list expansion problem.

2019-10-26 Thread Reio Remma

On 26/10/2019 14:18, Reio Remma wrote:
On the subject of catch all aliases, I tried adding one to my setup 
with odd results.


My usual setup with virtual users:

action deliver_lmtp lmtp "/var/run/dovecot/lmtp" rcpt-to virtual 
 userbase 


match from any for domain  rcpt-to  action 
deliver_lmtp


To get catch all working, I had to remove rcpt-to  from 
the match:


match from any for domain  action deliver_lmtp

Otherwise the response was: 550 Invalid recipient: 

One I removed the actual catch all alias and sent mail to a 
non-existent account, the usual:


550 Invalid recipient: 

turned into:

524 5.2.4 Mailing list expansion problem: 

Any ideas how I could use a catch all alias _and_ get a proper 550 
Invalid recipient if I don't? 


This is all with the current (v6.6) portable from a week ago or so.