In sqwebmail versions prior to 3.5.0.20030408
, the
logindomainlist
file had rather limited functionality. An
administrator could specify a list of domains, one per line. The user would
then see a drop down list to the right of the user id field in the
login.html
page. This drop down list was of limited usefulness
because it always defaulted to an empty (non-existant) domain. The user would
then have to search through the drop down to find the correct mail domain he
wanted to log in under. In addition, the drop down had no access controls,
and it showed EACH user ALL of the domains listed in the
logindomainlist
file.
The above functionality is still available, and the new
logindomainlist
functionality is 100% backward compatible.
However, the logindomainlist
file syntax has been extended and
is now MUCH more useful. For example, administrators can now specify a group
field for each drop down menu record and selectively display only the domains
for which each user is a member. In addition, the new file syntax allows
administrators to specify default domains so that their users don't have to
search for domains in the drop down list.
What if you don't want to display a drop down menu? Administrators can now
specify records that generate a hidden field in login.html
, or
an editable text field, allowing sqwebmail to show only one mail login domain
to each user per access URL or IP address. This functionality can greatly
reduce confusion for first time webmail users, and greatly speed the login
process for frequent webmail users.
Finally, the new logindomainlist
file offers a new tool to
ease maintenance. Administrators can now use wildcards to "rewrite" the
domain portion of the access URL to the mail domain equivalent. For example,
the following record can rewrite the URL "mail.*.com
" to the
mail domain "*.com
"
*.com:mail.*.com:@
This powerful wildcard functionality can ease the login process for most
of your server's mail domains with just one or two
logindomainlist
records.
Let's take a look at the NEW logindomainlist
file format:
firstfield:secondfield:thirdfield
Above, we can see that the new logindomainlist
records are
made up of three fields delimited by colons. But what does each field do?
First Field
- the first field contains the "mail domain" for
which we would like the user to log in under. The mail domain is the part of
an email address after the @ symbol. For example, in the email address
"user@domain.com
", "domain.com
" is the mail
domain.
Second Field
- the second field contains the "access domain".
The access domain contains an URL or IP address that is used to figure out
which mail domain to use by default. For example, in the following
logindomainlist
record:
domain1.com:domain2.com
"domain2.com
" is the "access domain" and
"domain1.com
" is the "mail domain". If the user logs into the
following URL:
http://domain2.com/cgi-bin/sqwebmail
His default "mail domain" will be "domain1.com
".
Third Field
- the third field may contain a modifier. The
modifier may be either a single character modifier, or a group identification
string. The single character modifiers and the group modifier are described
in detail below.
Finally, the logindomainlist
file may also contain comments
and empty lines. Empty lines can be used to group records visually, and
comments can be used to explain why a certain record or group of records look
the way they do.
If the first character of a line is a '#', then the entire line is considered a comment and is ignored. If the first character of a line contains whitespace, the entire line is assumed to be an empty line and is ignored.
@
- the '@' modifier can be used to create a hidden field on
the login.html
page which contains the default mail domain. In
addition, this field will automatically display the default mail domain in
plain text to the right of the userid text box.
NOTE: The '@' modifier ALLOWS the use of wildcards to automate the relationship between "access domains" and "mail domains". See the heading "Wildcards" below for more information about wildcarding.
-
- the '-' modifier can be used to create an editable text
field on the login.html
page which contains the default mail
domain.
NOTE: The '-' modifier ALLOWS the use of wildcards to automate the relationship between "access domains" and "mail domains". See the heading "Wildcards" below for more information about wildcarding.
group string
- If no modifier is specified in the third
field, or if the third field modifier is a group identifier string, then a
drop down menu will be displayed on the login.html
page. Records
with the SAME group string will be displayed together in the drop down. For
example, if your logindomainlist
file contains the following
records:
domain1.com:domain2.com:firstgroup domain3.com:domain4.com:firstgroup domain5.com:domain6.com:firstgroup domain7.com:domain8.com:secondgroup domain9.com:domain10.com:secondgroup
And the user logs into sqwebmail with the following URL:
http://domain4.com/cgi-bin/sqwebmail
He will see a drop down containing ONLY the following domains:
domain1.com domain3.com domain5.com
"domain3.com
" will be automatically selected, or defaulted.
Only the records in the firstgroup
will be visible to the user.
This functionality is great for organizations with more than one mail
domain.
NOTE: The group string modifier does NOT allow the use of wildcards to automate the relationship between "access domains" and "mail domains". This is because drop down menus are fundamentally incompatible with wildcards.
If a record's modifier allows wildcarding (See "Modifiers" above for information about which modifiers allow wildcarding and which do not.) then the first and second fields of that record _MAY_ contain wildcards. Wildcards match against the HTTP_HOST CGI environment variable only. IP addresses can NOT be used if either the first or second fields contain the wildcard character. However, if neither the first nor second fields contain the wildcard character, then the second field can contain an IP address.
In the logindomainlist
file, an asterisk (*) character in
either the first and/or second field represents a wildcard. Any asterisk in
the second field will be used to match an access domain. If an asterisk
exists in the first field then any characters which the asterisk in the
second field represents will replace the asterisk in the first field when
sqwebmail determines the default mail domain. However, asterisks are not
required in either the first or second fields. They are totally optional. For
example, given the following logindomainlist
record:
*.com:mail.*.com:@
If the user logs into sqwebmail with the following URL:
http://mail.mydomain.com/cgi-bin/sqwebmail
The asterisk in the second field will represent the string
"mydomain
". This string will then replace the asterisk in the
first field to give the following default mail domain:
mydomain.com
Similarly, if the following record exists in the
logindomainlist
file:
*:*:@
Then ANY URL the user uses to access sqwebmail will be automatically used for the default mail domain.
But the first field doesn't _HAVE_ to contain an asterisk. The following will work just fine:
mydomain.com:mydomain.*:@
The above example will allow the user to access the
"mydomain.com
" mail domain from any of the following URLs:
"mydomain.org
", "mydomain.net
",
"mydomain.us
", etc...
And finally, the first field doesn't have to contain anything at all! If
the first field is empty, that record will serve as an explicit no-default
mail domain. No default mail domain will be specified if the second field
matches the user's login URL. This is useful because the
logindomainlist
is searched from the top down. Any wildcard
records at the bottom of the list will be overridden by records closer to the
top. An "explicit no-default" record can be used to specify certain domains
as "system account" domains so that no default mail domain is specified.