While trying to learn opensmtpd, amongst other things I am struggeling
with the virtual user handling - for a non virtual domain setup.
From what I have been able to understand so far it seems, as if there
is no way to deliver mails to a lmtp socket, if there is not at least
some reference/mapping to a system user?
accept from any for domain "example.com" recipient <vusers> alias
<aliases> deliver to lmtp "/run/cyrus/lmtp" rcpt-to as nobody
where vusers contains:
However, despite being listed in vusers, when trying to send a mail to
bob, it gets rejected with "550 Invalid recipient". Creating a
systemuser "bob" makes it work. But then I do not need the vusers table,
so I am wondering, is it possible to get along without the need for a
Now the man page mentions a userbase parameter, and I assume, the
according table has to be in the format of the userinfo table mentioned
What then effectively again refers to a system user - just with a
mapping in between.
My attempts with a single userlist instead so far either resulted in a
'invalid use of table "susers" as USERBASE parameter' or simply a syntax
Is that assumption correct? Is there no way of keeping virtual users
completely off the system or did I get something terribly wrong? Even
when not using mbox/Maildir at all, where this requirement could make sense?
And since user filtering will eventually be done at an earlier stage, I
would like smtpd to be able to unconditionally forward any mail
unaltered (except aliases) to the lmtp socket.
So, in addition to bob@example as for the tests com I would like to be
able to use *@example.com or just example.com to not do any user
checking at all. Depending on the syntax requirements.
Is it possible to deactivate the user checking one way or the other?
Thanks for any insight or heads up on what I may have missed or