I've spent most of this week so far trying to find a way around the ridiculous restrictions of Cyrus libsasl2, which, unaccountably, has decided it wants to strip the domains from my usernames before they go for authentication. In the end I surrendered. I added a user field to the database and told both postfix and courier-pop to authenticate via that instead. This means I've got a problem when it comes to users who span several domains. Previously, when the username was the full email address, I could guarantee it was unique. The user part, before @, could be the same as any other account on the system, and the fact that the domain was there to tie it down meant there was no problem. Now, since I'm relying on plain text < 20 char usernames that don't have to have anything to do with the actual domain the user is in, I have to make sure each username is unique across *all* domains. So ajs@orinoco.homelinux.org can't have the same username as ajs@affordable-wombles.org. If there was a way to insert a where clause somewhere, that would make both authentication mechanisms take the domain into account, that would fix it nicely, but I don't think there is. Building the actual queries seems to happen behind the scenes.
Anyway, for the time being, it works. If I can work out a way to force authentication against the domain as well as the user, there'll be further fiddling, but for now, I can't be arsed with this anymore...
Anyway, for the time being, it works. If I can work out a way to force authentication against the domain as well as the user, there'll be further fiddling, but for now, I can't be arsed with this anymore...