On Thu, 28 Oct 2021 at 08:29, Felix Ingram <f.ing...@gmail.com> wrote:

> On Thu, 28 Oct 2021 at 00:15, <dove...@ptld.com> wrote:
>
>> [...]
>
> > I think my "creating users" was me wanting to make sure that when
>> > postfix
>> > passes an email for "bar...@mydomain.com" to Dovecot, then Dovecot
>> will
>> > store it and wait for
>> > someone to come along and impersonate barbaz. i.e. "barbaz" doesn't
>> > have to exist as a user
>> > already before Dovecot will store the mail.
>>
>> If you are using LMTP dovecot will only accept emails from postfix that
>> it can lookup the /directory/path to from one of the userdb{} or
>> passdb{} sections. If dovecot can not find a match in any of the
>> userdb{} or passdb{} it will reject the email as user unknown causing
>> postfix to send a undeliverable notice email back to the envelope sender
>> address, also known as back-scatter. I am not aware of a way to use
>> wildcard addresses in dovecot userdb{}, i don't think its possible but i
>> don't know what i don't know.
>>
>
> So I think this will be the main issue now - there's no way of knowing the
> addresses ahead of time, so it sounds like I'll need to add them to
> userdb{} when they
> hit postfix and before they get passed to dovecot.
>

Just to close the loop on this - I managed to get this working using
postfix's virtual aliases. I use
a postgresql function in the alias lookup that transforms '
tes...@foobar.mydomain.com' into
'foo...@mydomain.com' and at the same time inserts 'foo...@mydomain.com'
into the
Dovecot users table. I then have a separate passdb for master users that
can log in and
impersonate the foobar user.

So far this seems to work.

Thanks again to everyone for the help.

Felix

Reply via email to