Hello Steve,

as you can see in the source code, if an authorization ID ends with the default 
domain, that domain is stripped from the authorization ID.  It is not like you 
prefer - to add the default domain, if there is no domain.

In your case the users exist in the default domain ⇔ have no domain.  You can 
create one more domain and then see how on the file system the new folders are 
located (if UUID folders are not enabled - I do not use it, and you do not use 
it either, as your Cyrus version is old enough).

As you seem comfortable with modifying the Cyrus IMAP code, I suggest you try 
to adjust the imap/global.c:canonify_userid() function to strip also 
sample.domain.com.  But this will not be a sufficient change, if you use 
CalDAV/CardDAV, which you don's use, as the support of these in your Cyrus IMAP 
version is not good.  Just look for all places, where  config_defdomain  is 
used. 

It might or might not work in your case, if you keep loginrealms: 
imap.samle.domain.com and change defaultdomain: sample.domain.com - I do not 
remember now the details.  You might not need loginrealms.

Greetings
  Дилян
-----Original Message-----
From: Steve Turner <[email protected]>
Reply-To: Info <[email protected]>
To: Info <[email protected]>
Subject: Re: Enabling email based logins on existing system
Date: 18/09/24 18:01:39

It would probably help if I spelled "virtdomains" correctly in the imapd.conf 
file...  I had been using "virtualdomains" instead and not surprisingly that 
was doing nothing.  But I AM surprised that no error message is produced when 
an unrecognized option is specified (that would have saved me a lot of 
trouble).   I guess I can see the logic behind that if options that are 
applicable to a particular module are specified but the module is not loaded - 
you wouldn't want errors being produced
simply because an optional module was not loaded.

Anyway, my current configuration requires the following settings to work 
properly:

virtdomains: userid
defaultdomain: imap.sample.domain.com
loginrealms: imap.sample.domain.com
This is fine, but in the real world our email addresses are of the form 
"[email protected]" and our MX mail exchange systems (which serve the 
"sample.domain.com" domain) redirect emails to the actual IMAP server which is 
named "imap.sample.domain.com".   It would be nice if our users could use 
either domain as their login ID, and loginrealms allows this:
loginrealms: imap.sample.domain.com sample.domain.com
However, virtdomains only works if defaultdomain is specified, and 
defaultdomain only allows one value.  This seems incorrect.   I would expect 
defaultdomain to only be used when a local-part (e.g. "person") login is 
specified, then the concatenation of "person@<defaultdomain>" would be used as 
the login name (and compared against loginrealms as it is when a user specifies 
a full email address).  Why allow logins against any domain listed in 
loginrealms to succeed if the code turns around and
rejects any that aren't the defaultdomain?
Cyrus / Info / seediscussions +participants +delivery options
Permalink


------------------------------------------
Cyrus: Info
Permalink: 
https://cyrus.topicbox.com/groups/info/Tae2b59346d586220-M09077ee0dd382ee5d96f0c19
Delivery options: https://cyrus.topicbox.com/groups/info/subscription

Reply via email to