On Sun, Jul 07, 2024 at 06:02:00PM -0400, Robert Fuhrer via Postfix-users wrote:
> Oh, thanks; I should’ve realized I could just add another map to
> local_recipient_maps. D’oh!
You're conflating many rather distinct aspects of the delivery stack.
> My Dovecot setup uses MySQL to identify users+passwords.
These is not relevant to Postfix, they facilitate the performance of:
- The dovecot LDA, when delivering mail to a givan address (user
mailbox)
- The dovecot IMAP server, when authenticating users and serving
the content of their mailbox.
These happen behind the scenes and are of little relevance to Postfix.
> I assume you’re asking that because (as I just discovered) PostFix
> nominally supports MySQL, but OTOH “postconf -m” doesn’t list the
> “mysql” lookup table type, so it’s not supported on the distribution
> that comes with MacOS.
No, Postfix uses system libraries to find local user accounts, and
it does not matter whether they are listed in "/etc/passwd" as a file,
or hanled by some user directory service. If MacOS knows about the
user, Postfix will also. On my MacOS laptop:
$ grep viktor /etc/passwd
$ postmap -q viktor unix:passwd.byname
viktor:********:502:20:Viktor Dukhovni:/Users/viktor:/bin/bash
Just like magic. :-)
> # main.cf
> home_mailbox = Maildir/
This is used by the Postfix local(8) delivery agent, but not the dovecot
LDA, if that's what you're using. Post the output of "postconf -nf"
and "postconf -Mf" per the instructions in:
https://www.postfix.org/DEBUG_README.html#mail
making sure to preserve verbatim whitespace and linebreaks.
> but my Dovecot setup stores the base directory path in the MySQL DB.
> For non-login users, that base directory is of course not relative to
> the user's “home directory”, since non-login users have no “home
> directory”. (For login users, the base directory just happens to point
> to their home directory.)
If the "non-login" users aren't listed in "unix:passwd.byname", you can
use "fallback_transport" to hand off delivery to the dovecot LDA. And
then sure, you need to list them in some table that makes Postfix
recognise their email addresses as valid local recipients.
main.cf:
indexed = ${default_database_type}:${config_directory}/
local_recipient_maps =
unix:passwd.byname,
$alias_maps,
${indexed}non-login
non-login:
larry non-login user
curly non-login user
moe non-login user
...
You can alternatively use virtual_alias_maps to rewrite them into a
"synthetic" virtual alias domain, handled by the dovecot LDA as the
virtual_transport. I use "virtual.invalid" for that.
> I guess Dovecot’s LDA would consult the MySQL DB to find the user's
> Maildir, but perhaps PostFix’s invocation of the Dovecot LDA overrides
> the path using the “home_mailbox”. (?)
No, Postfix knows nothing about the internal workings of Dovecot, as
expected.
--
Viktor.
_______________________________________________
Postfix-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]