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 system user? 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 in tables(5)? 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 error.

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 misunderstood.


Reply via email to