Jozef Matick?:
> Hello Andreas,
> 
> Had some users complaining about mailboxes (and catch-alls) they created 
> were not accepting e-mails - Postfix, due to caching, was rejecting the 
> e-mail as if the mailbox wouldn't exist (apparently due to a fact 
> someone was trying to send an e-mail to that mailbox before it even 
> existed - maybe spammer, maybe a legit user).
> 
> The below statement I'm not 100% sure about as I was playing with 
> multiple config options, will have to check this again, however:
> I believe I also played with negative_refresh_time (setting it to 1s), 
> however I think what was happening was that e-mail was 450 deferred 
> (address ver. in prog.) for the first time the sender connected and 
> tried to deliver to already neg. cached address. Only afterwards the 
> cache was refreshed - causing the e-mail to defer with 450 once.
> This would have caused delays in delivery (or lost e-mails with bad 
> implementations) and more complaints from users saying there is a 
> problem with e-mails.

Summary: if you want to make you scheme work with address verification,
then you need a delivery agent that creates mailboxes instead of
replying with 'user unknown'. But that is not all.

Some choices are:

- The SMTP server replies with 5xx or 4xx, because the delivery
  agent replies with 'user unknown'. You don't want that.

- The SMTP server replies with 4xx, because the verify service
  replies with 'address verification in progress'. You don't want
  that.

- The SMTP server replies with 2xx, even though the delivery agent
  replies with 'user unknown'. The SMTP server must accept the email
  message, and delivery will fail immediately. You don't want that.

- The SMTP server replies with 2xx, because the delivery agent
  replies with 'user exists'. This means that when a mailbox does
  not exist, the delivery agent must reply AFTER the mailbox is
  created. 

Since the time to create mailboxes increases with server load, that
last variant also requires removing the loop with address_verify_poll_count
and address_verify_poll_delay, and replacing that loop with a
blocking query.

See a different response for hooking the auto-create feature into
the recipient maps for recipient validation.

        Wietse

Reply via email to