FAQ.txt   FAQ.txt 
/* ========================================================================
* Copyright 1988-2006 University of Washington
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* ========================================================================
*/
IMAP Toolkit Frequently Asked Questions IMAP Toolkit Frequently Asked Questions
Table of Contents Table of Contents
* 1. General/Software Feature Questions * 1. General/Software Feature Questions
+ 1.1 Can I set up a POP or IMAP server on UNIX/Linux/OSF/etc.? + 1.1 Can I set up a POP or IMAP server on UNIX/Linux/OSF/etc.?
+ 1.2 I am currently using qpopper as my POP3 server on UNIX. + 1.2 I am currently using qpopper as my POP3 server on UNIX.
Do I need to replace it with ipop3d in order to run imapd? Do I need to replace it with ipop3d in order to run imapd?
+ 1.3 Can I set up a POP or IMAP server on Windows XP, 2000, + 1.3 Can I set up a POP or IMAP server on Windows XP, 2000,
NT, Me, 98, or 95? NT, Me, 98, or 95?
+ 1.4 Can I set up a POP or IMAP server on Windows 3.1 or DOS? + 1.4 Can I set up a POP or IMAP server on Windows 3.1 or DOS?
skipping to change at line 335 skipping to change at line 347
went away! went away!
and why did this happen? There was also something about and why did this happen? There was also something about
o SECURITY PROBLEM: insecure server advertised AUTH=PLAIN o SECURITY PROBLEM: insecure server advertised AUTH=PLAIN
+ 7.47 Why do I get the message + 7.47 Why do I get the message
o SMTP Authentication cancelled o SMTP Authentication cancelled
and why did this happen? There was also something about and why did this happen? There was also something about
o SECURITY PROBLEM: insecure server advertised AUTH=PLAIN o SECURITY PROBLEM: insecure server advertised AUTH=PLAIN
+ 7.48 Why do I get the message + 7.48 Why do I get the message
o Invalid base64 string o Invalid base64 string
when I try to authenticate to a Cyrus server? when I try to authenticate to a Cyrus server?
* 8. Licensing Questions * 8. Where to Go For Additional Information
+ 8.1 Why does the UW choose to make the IMAP toolkit available + 8.1 Where can I go to ask questions?
under this Free-Fork license? + 8.2 I have some ideas for enhancements to IMAP. Where should
+ 8.2 I want to redistribute a modified version of the IMAP
toolkit. How can I do this?
+ 8.3 Can I redistribute an unmodified version of the IMAP
toolkit in a proprietary application?
+ 8.4 Is the Free-Fork license compatible with GPL?
* 9. Where to Go For Additional Information
+ 9.1 Where can I go to ask questions?
+ 9.2 I have some ideas for enhancements to IMAP. Where should
I go? I go?
+ 9.3 Where can I read more about IMAP and other email + 8.3 Where can I read more about IMAP and other email
protocols? protocols?
+ 9.4 Where can I find out more about setting up and + 8.4 Where can I find out more about setting up and
administering an IMAP server? administering an IMAP server?
_________________________________________________________________ _________________________________________________________________
1. General/Software Feature Questions 1. General/Software Feature Questions
_________________________________________________________________ _________________________________________________________________
1.1 Can I set up a POP or IMAP server on UNIX/Linux/OSF/etc.? 1.1 Can I set up a POP or IMAP server on UNIX/Linux/OSF/etc.?
Yes. Refer to the UNIX specific notes in files CONFIG and Yes. Refer to the UNIX specific notes in files CONFIG and
BUILD. BUILD.
skipping to change at line 391 skipping to change at line 395
to make qpopper work better with imapd; see the answer to the to make qpopper work better with imapd; see the answer to the
My qpopper users keep on getting the DON'T DELETE THIS MESSAGE My qpopper users keep on getting the DON'T DELETE THIS MESSAGE
-- FOLDER INTERNAL DATA if they also use Pine or IMAP. How can -- FOLDER INTERNAL DATA if they also use Pine or IMAP. How can
I fix this? question. I fix this? question.
_________________________________________________________________ _________________________________________________________________
1.3 Can I set up a POP or IMAP server on Windows XP, 2000, NT, Me, 98, 1.3 Can I set up a POP or IMAP server on Windows XP, 2000, NT, Me, 98,
or 95? or 95?
Yes. Refer to the NT specific notes in files CONFIG and BUILD. Yes. Refer to the NT specific notes in files CONFIG and BUILD.
Also, you *must* set up CRAM-MD5 authentication, as described Also, for DOS-based versions of Windows (Windows Me, 98, and
in md5.txt. 95) you *must* set up CRAM-MD5 authentication, as described in
md5.txt.
There is no file access control on Windows 9x or Me, so you There is no file access control on Windows 9x or Me, so you
probably will have to do modifications to env_unix.c to prevent probably will have to do modifications to env_unix.c to prevent
people from hacking others' mail. people from hacking others' mail.
Note, however, that the server is not plug and play the way it Note, however, that the server is not plug and play the way it
is for UNIX. is for UNIX.
_________________________________________________________________ _________________________________________________________________
1.4 Can I set up a POP or IMAP server on Windows 3.1 or DOS? 1.4 Can I set up a POP or IMAP server on Windows 3.1 or DOS?
skipping to change at line 447 skipping to change at line 452
filesystem to be both a file and a directory; consequently you filesystem to be both a file and a directory; consequently you
can not have a sub-mailbox within a mailbox that is in one of can not have a sub-mailbox within a mailbox that is in one of
these formats. these formats.
This is not a limitation of the software; this is a limitation This is not a limitation of the software; this is a limitation
of UNIX. For example, there are mailbox formats in which the of UNIX. For example, there are mailbox formats in which the
name is a directory and each message is a file within that name is a directory and each message is a file within that
directory; these formats support sub-mailboxes within such directory; these formats support sub-mailboxes within such
mailboxes. However, for technical reasons, the "flat file" mailboxes. However, for technical reasons, the "flat file"
formats are generally preferred since they perform better. Read formats are generally preferred since they perform better. Read
imap-2004/docs/formats.txt for more information on this topic. imap-2006/docs/formats.txt for more information on this topic.
It is always permissible to create a directory that is not a It is always permissible to create a directory that is not a
mailbox, and have sub-mailboxes under it. The easiest way to mailbox, and have sub-mailboxes under it. The easiest way to
create a directory is to create a new mailbox inside a create a directory is to create a new mailbox inside a
directory that doesn't already exist. For example, if you directory that doesn't already exist. For example, if you
create "Mail/testbox" on UNIX, the directory "Mail/" will create "Mail/testbox" on UNIX, the directory "Mail/" will
automatically be created and then the mailbox "testbox" will be automatically be created and then the mailbox "testbox" will be
created as a sub-mailbox of "Mail/". created as a sub-mailbox of "Mail/".
It is also possible to create the name "Mail/" directly. Check It is also possible to create the name "Mail/" directly. Check
skipping to change at line 660 skipping to change at line 665
1.32 Is there support for the Cyrus mailbox format? 1.32 Is there support for the Cyrus mailbox format?
No. No.
_________________________________________________________________ _________________________________________________________________
1.33 Is this software Y2K compliant? 1.33 Is this software Y2K compliant?
Please read the files Y2K and calendar.txt. Please read the files Y2K and calendar.txt.
_________________________________________________________________ _________________________________________________________________
2. What Do I Need to Build This Software? 2. What Do I Need to Build This Software?
_________________________________________________________________ _________________________________________________________________
2.1 What do I need to build this software with SSL on UNIX? 2.1 What do I need to build this software with SSL on UNIX?
You need to build and install OpenSSL first. You need to build and install OpenSSL first.
_________________________________________________________________ _________________________________________________________________
2.2 What do I need to build this software with Kerberos V on UNIX? 2.2 What do I need to build this software with Kerberos V on UNIX?
You need to build and install MIT Kerberos first. You need to build and install MIT Kerberos first.
skipping to change at line 735 skipping to change at line 740
2.10 What do I need to build this software on Amiga or OS/2? 2.10 What do I need to build this software on Amiga or OS/2?
We don't know. We don't know.
_________________________________________________________________ _________________________________________________________________
2.11 What do I need to build this software on Windows CE? 2.11 What do I need to build this software on Windows CE?
This port is incomplete. Someone needs to finish it. This port is incomplete. Someone needs to finish it.
_________________________________________________________________ _________________________________________________________________
3. Build and Configuration Questions 3. Build and Configuration Questions
_________________________________________________________________ _________________________________________________________________
3.1 How do I configure the IMAP and POP servers on UNIX? 3.1 How do I configure the IMAP and POP servers on UNIX?
3.2 I built and installed the servers according to the BUILD 3.2 I built and installed the servers according to the BUILD
instructions. It can't be that easy. Don't I need to write a config instructions. It can't be that easy. Don't I need to write a config
file? file?
For ordinary "vanilla" UNIX systems, this software is plug and For ordinary "vanilla" UNIX systems, this software is plug and
play; just build it, install it, and you're done. If you have a play; just build it, install it, and you're done. If you have a
modified system, then you may want to do additional work; most modified system, then you may want to do additional work; most
skipping to change at line 766 skipping to change at line 771
3.4 How do I make the IMAP server look for secondary folders at some 3.4 How do I make the IMAP server look for secondary folders at some
place other than the user's home directory? place other than the user's home directory?
Please read the file CONFIG for discussion of this and other Please read the file CONFIG for discussion of this and other
issues. issues.
_________________________________________________________________ _________________________________________________________________
3.5 How do I configure SSL? 3.5 How do I configure SSL?
3.6 How do I configure TLS and the STARTTLS facility? 3.6 How do I configure TLS and the STARTTLS facility?
imap-2004 supports SSL and TLS client functionality on UNIX and imap-2006 supports SSL and TLS client functionality on UNIX and
32-bit Windows for IMAP, POP3, SMTP, and NNTP; and SSL and TLS 32-bit Windows for IMAP, POP3, SMTP, and NNTP; and SSL and TLS
server functionality on UNIX for IMAP and POP3. server functionality on UNIX for IMAP and POP3.
UNIX SSL build requires that a third-party software package, UNIX SSL build requires that a third-party software package,
OpenSSL, be installed on the system first. Read OpenSSL, be installed on the system first. Read
imap-2004/docs/SSLBUILD for more information. imap-2006/docs/SSLBUILD for more information.
SSL is supported via undocumented Microsoft interfaces in SSL is supported via undocumented Microsoft interfaces in
Windows 9x and NT4; and via standard interfaces in Windows Windows 9x and NT4; and via standard interfaces in Windows
2000, Windows Millenium, and Windows XP. 2000, Windows Millenium, and Windows XP.
_________________________________________________________________ _________________________________________________________________
3.7 How do I build/install OpenSSL and obtain/create certificates for 3.7 How do I build/install OpenSSL and obtain/create certificates for
use with SSL? use with SSL?
If you need help in doing this, try the contacts mentioned in If you need help in doing this, try the contacts mentioned in
skipping to change at line 799 skipping to change at line 804
CRAM-MD5 authentication is enabled in the IMAP and POP3 client CRAM-MD5 authentication is enabled in the IMAP and POP3 client
code on all platforms. Read md5.txt to learn how to set up code on all platforms. Read md5.txt to learn how to set up
CRAM-MD5 and APOP authentication on UNIX and NT servers. CRAM-MD5 and APOP authentication on UNIX and NT servers.
There is no support for APOP client authentication. There is no support for APOP client authentication.
_________________________________________________________________ _________________________________________________________________
3.10 How do I configure Kerberos V5? 3.10 How do I configure Kerberos V5?
imap-2004 supports client and server functionality on UNIX and imap-2006 supports client and server functionality on UNIX and
32-bit Windows. 32-bit Windows.
Kerberos V5 is supported by default in Windows 2000 builds: Kerberos V5 is supported by default in Windows 2000 builds:
nmake -f makefile.w2k nmake -f makefile.w2k
Other builds require that a third-party Kerberos package, e.g. Other builds require that a third-party Kerberos package, e.g.
MIT Kerberos, be installed on the system first. MIT Kerberos, be installed on the system first.
To build with Kerberos V5 on UNIX, include To build with Kerberos V5 on UNIX, include
EXTRAAUTHENTICATORS=gss in the make command line, e.g. EXTRAAUTHENTICATORS=gss in the make command line, e.g.
make lnp EXTRAAUTHENTICATORS=gss make lnp EXTRAAUTHENTICATORS=gss
To build with Kerberos V5 on Windows 9x, Windows Millenium, and To build with Kerberos V5 on Windows 9x, Windows Millenium, and
NT4, use the "makefile.ntk" file instead of "makefile.nt": NT4, use the "makefile.ntk" file instead of "makefile.nt":
nmake -f makefile.ntk nmake -f makefile.ntk
Back to top
_________________________________________________________________ _________________________________________________________________
3.11 How do I configure PAM for plaintext passwords? 3.11 How do I configure PAM for plaintext passwords?
On Linux systems, use the lnp port, e.g. On Linux systems, use the lnp port, e.g.
make lnp make lnp
On Solaris systems and other systems with defective PAM On Solaris systems and other systems with defective PAM
implementations, build with PASSWDTYPE=pmb, e.g. implementations, build with PASSWDTYPE=pmb, e.g.
skipping to change at line 872 skipping to change at line 875
However, this will NOT give you Kerberos-secure authentication. However, this will NOT give you Kerberos-secure authentication.
See the answer to the How do I configure Kerberos V5? question See the answer to the How do I configure Kerberos V5? question
for how to build with Kerberos-secure authentication. for how to build with Kerberos-secure authentication.
_________________________________________________________________ _________________________________________________________________
3.14 How do I configure AFS for plaintext passwords? 3.14 How do I configure AFS for plaintext passwords?
Build with PASSWDTYPE=afs, e.g Build with PASSWDTYPE=afs, e.g
make sol PASSWDTYPE=afs make sol PASSWDTYPE=afs
Back to top
_________________________________________________________________ _________________________________________________________________
3.15 How do I configure DCE for plaintext passwords? 3.15 How do I configure DCE for plaintext passwords?
Build with PASSWDTYPE=dce, e.g Build with PASSWDTYPE=dce, e.g
make sol PASSWDTYPE=dce make sol PASSWDTYPE=dce
Back to top
_________________________________________________________________ _________________________________________________________________
3.16 How do I configure the CRAM-MD5 database for plaintext passwords? 3.16 How do I configure the CRAM-MD5 database for plaintext passwords?
The CRAM-MD5 password database is automatically used for The CRAM-MD5 password database is automatically used for
plaintext password if it exists. plaintext password if it exists.
Note that this is NOT CRAM-MD5-secure authentication. You Note that this is NOT CRAM-MD5-secure authentication. You
probably want to consider disabling plaintext passwords for probably want to consider disabling plaintext passwords for
non-SSL/TLS sessions. See the next two questions. non-SSL/TLS sessions. See the next two questions.
skipping to change at line 909 skipping to change at line 908
make lnx EXTRAAUTHENTICATORS=gss PASSWDTYPE=nul make lnx EXTRAAUTHENTICATORS=gss PASSWDTYPE=nul
Note that you must have a CRAM-MD5 database installed or Note that you must have a CRAM-MD5 database installed or
specify at least one EXTRAAUTHENTICATOR, otherwise it will not specify at least one EXTRAAUTHENTICATOR, otherwise it will not
be possible to log in to the server. be possible to log in to the server.
When plaintext passwords are disabled, the IMAP server will When plaintext passwords are disabled, the IMAP server will
advertise the LOGINDISABLED capability and the POP3 server will advertise the LOGINDISABLED capability and the POP3 server will
not advertise the USER capability. not advertise the USER capability.
_________________________________________________________________
3.18 How do I disable plaintext passwords on unencrypted sessions, but 3.18 How do I disable plaintext passwords on unencrypted sessions, but
allow them in SSL or TLS sessions? allow them in SSL or TLS sessions?
Do not set PASSWDTYPE=nul or SSLTYPE=unix. Set SSLTYPE=nopwd Do not set PASSWDTYPE=nul or SSLTYPE=unix. Set SSLTYPE=nopwd
instead, e.g. instead, e.g.
make lnx SSLTYPE=nopwd make lnx SSLTYPE=nopwd
When plaintext passwords are disabled, the IMAP server will When plaintext passwords are disabled, the IMAP server will
skipping to change at line 1066 skipping to change at line 1064
executed on Linux systems. executed on Linux systems.
_________________________________________________________________ _________________________________________________________________
3.24 OK, suppose I see a warning message about a function being 3.24 OK, suppose I see a warning message about a function being
"dangerous and should not be used" for something other than this "dangerous and should not be used" for something other than this
gets() or tmpnam() call? gets() or tmpnam() call?
Please forward the details for investigation. Please forward the details for investigation.
_________________________________________________________________ _________________________________________________________________
4. Operational Questions 4. Operational Questions
_________________________________________________________________ _________________________________________________________________
4.1 How can I enable anonymous IMAP logins? 4.1 How can I enable anonymous IMAP logins?
Create the file /etc/anonymous.newsgroups. At the present time, Create the file /etc/anonymous.newsgroups. At the present time,
this file should be empty. This will permit IMAP logins as this file should be empty. This will permit IMAP logins as
anonymous as well as the ANONYMOUS SASL authenticator. anonymous as well as the ANONYMOUS SASL authenticator.
Anonymous users have access to mailboxes in the #news., #ftp/, Anonymous users have access to mailboxes in the #news., #ftp/,
and #public/ namespaces only. and #public/ namespaces only.
_________________________________________________________________ _________________________________________________________________
skipping to change at line 1103 skipping to change at line 1101
following rules: following rules:
+ If /ssl is specified, use an SSL connection. Fail otherwise. + If /ssl is specified, use an SSL connection. Fail otherwise.
+ Else if client is a UNIX system and "ssh server exec + Else if client is a UNIX system and "ssh server exec
/etc/rimapd" works, use that /etc/rimapd" works, use that
+ Else if /tryssl is specified and an SSL connection works, use + Else if /tryssl is specified and an SSL connection works, use
that. that.
+ Else if client is a UNIX system and "rsh server exec + Else if client is a UNIX system and "rsh server exec
/etc/rimapd" works, use that. /etc/rimapd" works, use that.
+ Else use a non-SSL connection. + Else use a non-SSL connection.
_________________________________________________________________ _________________________________________________________________
4.4 I am using a TLS-capable IMAP server, so I don't need to use /ssl 4.4 I am using a TLS-capable IMAP server, so I don't need to use /ssl
to get encryption. However, I want to be certain that my session is to get encryption. However, I want to be certain that my session is
TLS encrypted before I send my password. How to I do this? TLS encrypted before I send my password. How to I do this?
Use the /tls option in the mailbox name. This will cause an Use the /tls option in the mailbox name. This will cause an
error message and the connection to fail if the server does not error message and the connection to fail if the server does not
negotiate STARTTLS. negotiate STARTTLS.
_________________________________________________________________ _________________________________________________________________
skipping to change at line 1254 skipping to change at line 1252
edit this file to change the syslog facility from LOG_MAIL to edit this file to change the syslog facility from LOG_MAIL to
the facility you want, then rebuild. You also need to set up the facility you want, then rebuild. You also need to set up
your /etc/syslog.conf properly. your /etc/syslog.conf properly.
Refer to the man pages for syslog and syslogd for more Refer to the man pages for syslog and syslogd for more
information on what the available syslog facilities are and how information on what the available syslog facilities are and how
to configure syslogs. If you still don't understand what to do, to configure syslogs. If you still don't understand what to do,
find a UNIX system expert. find a UNIX system expert.
_________________________________________________________________ _________________________________________________________________
5. Security Questions 5. Security Questions
_________________________________________________________________ _________________________________________________________________
5.1 I see that the IMAP server allows access to arbitary files on the 5.1 I see that the IMAP server allows access to arbitary files on the
system, including /etc/passwd! How do I disable this? system, including /etc/passwd! How do I disable this?
You should not worry about this if your IMAP users are allowed You should not worry about this if your IMAP users are allowed
shell access. The IMAP server does not permit any access that shell access. The IMAP server does not permit any access that
the user can not have via the shell. the user can not have via the shell.
If, and only if, you deny your IMAP users shell access, you may If, and only if, you deny your IMAP users shell access, you may
skipping to change at line 1398 skipping to change at line 1396
The deliberate mischief that can be caused by fiddling with the The deliberate mischief that can be caused by fiddling with the
lock files is small-scale; harassment level at most. There are lock files is small-scale; harassment level at most. There are
many -- and much more effective -- other ways of harassing many -- and much more effective -- other ways of harassing
another user on UNIX. It's usually not difficult to determine another user on UNIX. It's usually not difficult to determine
the culprit. the culprit.
Before worrying about deliberate mischief, worry first about Before worrying about deliberate mischief, worry first about
things happening by accident! things happening by accident!
_________________________________________________________________ _________________________________________________________________
6. Why Did You Do This Strange Thing? Questions 6. Why Did You Do This Strange Thing? Questions
_________________________________________________________________ _________________________________________________________________
6.1 Why don't you use GNU autoconfig / automake / autoblurdybloop? 6.1 Why don't you use GNU autoconfig / automake / autoblurdybloop?
Autoconfig et al are not available on all the platforms where Autoconfig et al are not available on all the platforms where
the IMAP toolkit is supported; and do not work correctly on the IMAP toolkit is supported; and do not work correctly on
some of the platforms where they do exist. Furthermore, these some of the platforms where they do exist. Furthermore, these
programs add another layer of complexity to an already complex programs add another layer of complexity to an already complex
process. process.
skipping to change at line 1421 skipping to change at line 1419
software wastes an inordinate amount of time. When (not if) software wastes an inordinate amount of time. When (not if)
autoconfig fails to do the right thing, the result is an autoconfig fails to do the right thing, the result is an
inpenetrable morass to untangle in order to find the problem inpenetrable morass to untangle in order to find the problem
and fix it. and fix it.
The concept behind autoconfig is good, but the execution is The concept behind autoconfig is good, but the execution is
flawed. It rarely does the right thing on a platform that flawed. It rarely does the right thing on a platform that
wasn't specifically considered. Human life is too short to wasn't specifically considered. Human life is too short to
debug autoconfig problems, especially since the current debug autoconfig problems, especially since the current
mechanism is so much easier. mechanism is so much easier.
If an autoconfig mechanism were used, it wouldn't be the GNU
one, due to the viral nature of the GNU license.
_________________________________________________________________ _________________________________________________________________
6.2 Why do you insist upon a build with -g? Doesn't it waste disk and 6.2 Why do you insist upon a build with -g? Doesn't it waste disk and
memory space? memory space?
From time to time a submitted port has snuck in without -g. From time to time a submitted port has snuck in without -g.
This has always ended up causing problems. There are only two This has always ended up causing problems. There are only two
valid excuses for not using -g in a port: valid excuses for not using -g in a port:
+ The compiler does not support -g + The compiler does not support -g
skipping to change at line 1658 skipping to change at line 1653
just considers every line that starts with "From " to be the start of just considers every line that starts with "From " to be the start of
the message. the message.
You just answered your own question. If any line that starts You just answered your own question. If any line that starts
with "From " is treated as the start of a message, then every with "From " is treated as the start of a message, then every
message text line which starts with "From " has to be quoted message text line which starts with "From " has to be quoted
(typically by prefixing a ">" character). People complain about (typically by prefixing a ">" character). People complain about
this -- "why did a > get stuck in my message?" this -- "why did a > get stuck in my message?"
So, good mail reading software only considers a line to be a So, good mail reading software only considers a line to be a
"From " line if it follows the actual specification for a "From "From " line if it follows the actual specification for a
" line. This means, among other things, that the day of week is "From " line. This means, among other things, that the day of
fixed-format: "May 14", but "May 7" (note the extra space) as week is fixed-format: "May 14", but "May 7" (note the extra
opposed to "May 7". ctime() format for the date is the most space) as opposed to "May 7". ctime() format for the date is
common, although POSIX also allows a numeric timezone after the the most common, although POSIX also allows a numeric timezone
year. For compatibility with ancient software, the seconds are after the year. For compatibility with ancient software, the
optional, the timezone may appear before the year, the old seconds are optional, the timezone may appear before the year,
3-letter timezones are also permitted, and "remote from xxx" the old 3-letter timezones are also permitted, and "remote from
may appear after the whole thing. xxx" may appear after the whole thing.
Unfortunately, some software written by novices use other Unfortunately, some software written by novices use other
formats. The most common error is to have a variable-width day formats. The most common error is to have a variable-width day
of month, perhaps in the erroneous belief that RFC 2822 (or RFC of month, perhaps in the erroneous belief that RFC 2822 (or RFC
822) defines the format of the date/time in the "From " line 822) defines the format of the date/time in the "From " line
(it doesn't; no RFC describes internal formats). I've seen a (it doesn't; no RFC describes internal formats). I've seen a
few other goofs, such as a single-digit second, but these are few other goofs, such as a single-digit second, but these are
less common. less common.
If you are writing your own software that writes mailbox files, If you are writing your own software that writes mailbox files,
skipping to change at line 1782 skipping to change at line 1777
bad binaries (the most obvious symptom is dropping the first bad binaries (the most obvious symptom is dropping the first
two characters return filenames from the imapd LIST command. two characters return filenames from the imapd LIST command.
This compiler also uses -O2, and is very often what the user This compiler also uses -O2, and is very often what the user
gets from "cc". BEWARE gets from "cc". BEWARE
+ If you build the sol port with the real SVR4 compiler, which + If you build the sol port with the real SVR4 compiler, which
is often hidden away or unavailable on many systems, then you is often hidden away or unavailable on many systems, then you
will get errors from -O2 and you need to change that to -O. will get errors from -O2 and you need to change that to -O.
But you will get a good binary. However, you should try it But you will get a good binary. However, you should try it
with -O2 first, to make sure that you got this compiler and with -O2 first, to make sure that you got this compiler and
not the UCB compiler using BSD libraries. not the UCB compiler using BSD libraries.
_________________________________________________________________ _________________________________________________________________
6.18 Why should I care about some old system with BSD libraries? cc is 6.18 Why should I care about some old system with BSD libraries? cc is
the right thing on my Solaris system! the right thing on my Solaris system!
Because there still are sites that use such systems. On those Because there still are sites that use such systems. On those
systems, the assumption that "cc" does the right thing will systems, the assumption that "cc" does the right thing will
lead to corrupt binaries with no error message or other warning lead to corrupt binaries with no error message or other warning
that anything is amiss. that anything is amiss.
Too many sites have fallen victim to this problem. Too many sites have fallen victim to this problem.
skipping to change at line 1811 skipping to change at line 1806
_________________________________________________________________ _________________________________________________________________
6.20 Why should I care about compatibility with the past? 6.20 Why should I care about compatibility with the past?
This is one of those questions in which the answer never This is one of those questions in which the answer never
convinces those who ask it. Somehow, everybody who ever asks convinces those who ask it. Somehow, everybody who ever asks
this question ends up answering it for themselves as they get this question ends up answering it for themselves as they get
older, with the very answer that they rejected years earlier. older, with the very answer that they rejected years earlier.
_________________________________________________________________ _________________________________________________________________
7. Problems and Annoyances 7. Problems and Annoyances
_________________________________________________________________ _________________________________________________________________
7.1 Help! My INBOX is empty! What happened to my messages? 7.1 Help! My INBOX is empty! What happened to my messages?
If you are seeing "0 messages" when you open INBOX and you know If you are seeing "0 messages" when you open INBOX and you know
you have messages there (and perhaps have looked at your mail you have messages there (and perhaps have looked at your mail
spool file and see that messages are there), then probably spool file and see that messages are there), then probably
there is something wrong with the very first line of your mail there is something wrong with the very first line of your mail
spool file. Make sure that the first five bytes of the file are spool file. Make sure that the first five bytes of the file are
"From ", followed by an email address and a date/time in "From ", followed by an email address and a date/time in
ctime() format, e.g.: ctime() format, e.g.:
From fred@foo.bar Mon May 7 20:54:30 2001 From fred@foo.bar Mon May 7 20:54:30 2001
Back to top
_________________________________________________________________ _________________________________________________________________
7.2 Help! All my messages in a non-INBOX mailbox have been 7.2 Help! All my messages in a non-INBOX mailbox have been
concatenated into one message which claims to be from me and has a concatenated into one message which claims to be from me and has a
subject of the file name of the mailbox! What's going on? subject of the file name of the mailbox! What's going on?
Something wrong with the very first line of the mailbox. Make Something wrong with the very first line of the mailbox. Make
sure that the first five bytes of the file are "From ", sure that the first five bytes of the file are "From ",
followed by an email address and a date/time in ctime() format, followed by an email address and a date/time in ctime() format,
e.g.: e.g.:
From fred@foo.bar Mon May 7 20:54:30 2001 From fred@foo.bar Mon May 7 20:54:30 2001
Back to top
_________________________________________________________________ _________________________________________________________________
7.3 Why do I get the message: CREATE failed: Can't create mailbox node 7.3 Why do I get the message: CREATE failed: Can't create mailbox node
xxxxxxxxx: File exists and how do I fix it? xxxxxxxxx: File exists and how do I fix it?
See the answer to the Are hierarchical mailboxes supported? See the answer to the Are hierarchical mailboxes supported?
question. question.
_________________________________________________________________ _________________________________________________________________
7.4 Why can't I log in to the server? The user name and password are 7.4 Why can't I log in to the server? The user name and password are
skipping to change at line 1883 skipping to change at line 1874
server in /etc/pam.d? server in /etc/pam.d?
+ If you are using shadow passwords, have you used an + If you are using shadow passwords, have you used an
appropriate port when building? In particular, note that appropriate port when building? In particular, note that
"lnx" is for Linux systems without shadow passwords; you "lnx" is for Linux systems without shadow passwords; you
probably want "slx" or "lnp" instead. probably want "slx" or "lnp" instead.
+ If your system has account or password expirations, check to + If your system has account or password expirations, check to
see that the expiration date hasn't passed. see that the expiration date hasn't passed.
+ You can't log in as root or any other UID 0 user. This is for + You can't log in as root or any other UID 0 user. This is for
your own safety, not to mention the fact that the servers use your own safety, not to mention the fact that the servers use
UID 0 as meaning "not logged in". UID 0 as meaning "not logged in".
_________________________________________________________________ _________________________________________________________________
7.5 Help! My load average is soaring and I see hundreds of POP and 7.5 Help! My load average is soaring and I see hundreds of POP and
IMAP servers, many logged in as the same user! IMAP servers, many logged in as the same user!
Certain inferior losing GUI mail reading programs have a Certain inferior losing GUI mail reading programs have a
"synchronize all mailboxes at startup" (IMAP) or "check for new "synchronize all mailboxes at startup" (IMAP) or "check for new
mail every second" (POP) feature which causes a rapid and mail every second" (POP) feature which causes a rapid and
unchecked spawning of servers. unchecked spawning of servers.
This is not a problem in the server; the client is really This is not a problem in the server; the client is really
skipping to change at line 1944 skipping to change at line 1935
7.8 Why isn't it showing the local host name as a fully-qualified 7.8 Why isn't it showing the local host name as a fully-qualified
domain name? domain name?
7.9 Why is the local host name in the From/Sender/Message-ID headers 7.9 Why is the local host name in the From/Sender/Message-ID headers
of outgoing mail not coming out as a fully-qualified domain name? of outgoing mail not coming out as a fully-qualified domain name?
Your UNIX system is misconfigured. The entry for your system in Your UNIX system is misconfigured. The entry for your system in
/etc/hosts must have the fully-qualified domain name first, /etc/hosts must have the fully-qualified domain name first,
e.g. e.g.
105.69.1.234 bombastic.blurdybloop.com bombastic 105.69.1.234 myserver.example.com myserver
A common mistake of novice system administrators is to have the A common mistake of novice system administrators is to have the
short name first, e.g. short name first, e.g.
105.69.1.234 bombastic bombastic.blurdybloop.com 105.69.1.234 myserver myserver.example.com
or to omit the fully qualified domain name entirely, e.g. or to omit the fully qualified domain name entirely, e.g.
105.69.1.234 bombastic 105.69.1.234 myserver
The result of this is that when the IMAP toolkit does a The result of this is that when the IMAP toolkit does a
gethostbyname() call to get the fully-qualified domain name, it gethostbyname() call to get the fully-qualified domain name, it
would get "bombastic" instead of "bombastic.blurdybloop.com". would get "myserver" instead of "myserver.example.com".
On some systems, a configuration file (typically named On some systems, a configuration file (typically named
/etc/svc.conf, /etc/netsvc.conf, or /etc/nsswitch.conf) can be /etc/svc.conf, /etc/netsvc.conf, or /etc/nsswitch.conf) can be
used to configure the system to use the domain name system used to configure the system to use the domain name system
(DNS) instead of /etc/hosts, so it doesn't matter if /etc/hosts (DNS) instead of /etc/hosts, so it doesn't matter if /etc/hosts
is misconfigured. is misconfigured.
Check the man pages for gethostbyname, hosts, svc, and/or Check the man pages for gethostbyname, hosts, svc, and/or
netsvc for more information. netsvc for more information.
skipping to change at line 1984 skipping to change at line 1975
was to append the results of getdomainname() to the name was to append the results of getdomainname() to the name
returned by gethostname(), and some versions of sendmail returned by gethostname(), and some versions of sendmail
configuration files were distributed that did this. This was configuration files were distributed that did this. This was
incorrect; the string returned from getdomainname() is the incorrect; the string returned from getdomainname() is the
Yellow Pages (a.k.a NIS) domain name, which is a completely Yellow Pages (a.k.a NIS) domain name, which is a completely
different (albeit unfortunately named) entity from an Internet different (albeit unfortunately named) entity from an Internet
domain. These were often fortuitously the same string, except domain. These were often fortuitously the same string, except
when they weren't. Frequently, this would result in host names when they weren't. Frequently, this would result in host names
with spuriously doubled domain names, e.g. with spuriously doubled domain names, e.g.
bombastic.blurdybloop.com.blurdybloop.com myserver.example.com.example.com
This practice has been thoroughly discredited for many years, This practice has been thoroughly discredited for many years,
but folklore dies hard. but folklore dies hard.
_________________________________________________________________ _________________________________________________________________
7.10 What does the message: Mailbox vulnerable - directory 7.10 What does the message: Mailbox vulnerable - directory
/var/spool/mail must have 1777 protection mean? How can I fix this? /var/spool/mail must have 1777 protection mean? How can I fix this?
In order to update a mailbox in the default UNIX format, it is In order to update a mailbox in the default UNIX format, it is
necessary to create a lock file to prevent the mailer from necessary to create a lock file to prevent the mailer from
skipping to change at line 2021 skipping to change at line 2012
then you have much worse problems then that. then you have much worse problems then that.
If you absolutely insist upon requiring privileges to create a If you absolutely insist upon requiring privileges to create a
lock file, external file locking can be done via a setgid mail lock file, external file locking can be done via a setgid mail
program named /etc/mlock (this is defined by LOCKPGM in the program named /etc/mlock (this is defined by LOCKPGM in the
c-client Makefile). If the toolkit is unable to create a c-client Makefile). If the toolkit is unable to create a
<...mailbox...>.lock file in the directory by itself, it will <...mailbox...>.lock file in the directory by itself, it will
try to call mlock to do it. I do not recommend doing this for try to call mlock to do it. I do not recommend doing this for
performance reasons. performance reasons.
A sample mlock program is included as part of imap-2004. We A sample mlock program is included as part of imap-2006. We
have tried to make this sample program secure, but it has not have tried to make this sample program secure, but it has not
been thoroughly audited. been thoroughly audited.
_________________________________________________________________ _________________________________________________________________
7.11 What does the message: Mailbox is open by another process, access 7.11 What does the message: Mailbox is open by another process, access
is readonly mean? How do I fix this? is readonly mean? How do I fix this?
A problem occurred in applying a lock to a /tmp lock file. A problem occurred in applying a lock to a /tmp lock file.
Either some other program has the mailbox open and won't Either some other program has the mailbox open and won't
relenquish it, or something is wrong with the protection of relenquish it, or something is wrong with the protection of
skipping to change at line 2230 skipping to change at line 2221
+ If you have received new messages, be sure to copy the new + If you have received new messages, be sure to copy the new
messages from INBOX to INBOX.new before doing the rename. messages from INBOX to INBOX.new before doing the rename.
You now have a working INBOX, as well as two files with You now have a working INBOX, as well as two files with
corrupted data (badmsg.1 and badmsg.2). There may be some corrupted data (badmsg.1 and badmsg.2). There may be some
useful data in the two badmsg files that you might want to try useful data in the two badmsg files that you might want to try
salvaging; otherwise you can delete the two badmsg files. salvaging; otherwise you can delete the two badmsg files.
_________________________________________________________________ _________________________________________________________________
7.16 What do the syslog messages: 7.16 What do the syslog messages:
imap/tcp server failing (looping) imap/tcp server failing (looping)
pop3/tcp server failing (looping) pop3/tcp server failing (looping)
mean? When it happens, the listed service shuts down. How can I fix mean? When it happens, the listed service shuts down. How can I fix
this? this?
The error message "server failing (looping), service The error message "server failing (looping), service
terminated" is not from either the IMAP or POP servers. terminated" is not from either the IMAP or POP servers.
Instead, it comes from inetd, the daemon which listens for TCP Instead, it comes from inetd, the daemon which listens for TCP
connections to a number of servers, including the IMAP and POP connections to a number of servers, including the IMAP and POP
skipping to change at line 2426 skipping to change at line 2418
As distributed, the IMAP server is connected to your home As distributed, the IMAP server is connected to your home
directory by default. It has no way of knowing what you might directory by default. It has no way of knowing what you might
call "mail" as opposed to "some other file"; in fact, you can call "mail" as opposed to "some other file"; in fact, you can
use IMAP to access any file. use IMAP to access any file.
Most clients have an option to configure your connected Most clients have an option to configure your connected
directory on the IMAP server. For example, in Pine you can directory on the IMAP server. For example, in Pine you can
specify this as the "Path" in your folder-collection, e.g. specify this as the "Path" in your folder-collection, e.g.
Nickname : Secondary Folders Nickname : Secondary Folders
Server : imap.blurdybloop.com Server : imap.example.com
Path : mail/ Path : mail/
View : View :
In this example, the user is connected to the "mail" In this example, the user is connected to the "mail"
subdirectory of his home directory. subdirectory of his home directory.
Other servers call this the "folder prefix" or similar term. Other servers call this the "folder prefix" or similar term.
It is possible to modify the IMAP server so that all users are It is possible to modify the IMAP server so that all users are
automatically connected to some other directory, e.g. a automatically connected to some other directory, e.g. a
skipping to change at line 2523 skipping to change at line 2515
The use of rsh can be disabled in any the following ways: The use of rsh can be disabled in any the following ways:
+ You can disable it for this particular session by either: + You can disable it for this particular session by either:
o setting an explicit port number in the mailbox name, o setting an explicit port number in the mailbox name,
e.g. e.g.
{imapserver.foo.com:143}INBOX {imapserver.foo.com:143}INBOX
o using SSL (the /ssl switch) o using SSL (the /ssl switch)
+ You can disable rsh globally by setting the rsh timeout value + You can disable rsh globally by setting the rsh timeout value
to 0 with the call: to 0 with the call:
mail_parameters (NIL,SET_RSHTIMEOUT,0); mail_parameters (NIL,SET_RSHTIMEOUT,0);
_________________________________________________________________ _________________________________________________________________
7.26 Why does a message sometimes get split into two or more messages 7.26 Why does a message sometimes get split into two or more messages
on my SUN system? on my SUN system?
This is caused by an interaction of two independent design This is caused by an interaction of two independent design
problems in SUN mail software. The first problem is that the problems in SUN mail software. The first problem is that the
"forward message" option in SUN's mail tool program includes "forward message" option in SUN's mail tool program includes
the internal "From " header line in the text that it forwarded. the internal "From " header line in the text that it forwarded.
This internal header line is specific to traditional UNIX This internal header line is specific to traditional UNIX
mailbox files and is not suitable for use in forwarded mailbox files and is not suitable for use in forwarded
skipping to change at line 2958 skipping to change at line 2950
The most common reason that this happens is if the Cyrus server The most common reason that this happens is if the Cyrus server
offers Kerberos authentication, c-client is built with Kerberos offers Kerberos authentication, c-client is built with Kerberos
support, but your client system is not within the Kerberos support, but your client system is not within the Kerberos
realm. In this case, the client code will try to authenticate realm. In this case, the client code will try to authenticate
via Kerberos, fail to get the Kerberos credentials, cancel the via Kerberos, fail to get the Kerberos credentials, cancel the
authentication attempt, and try the next available authentication attempt, and try the next available
authentication technology. authentication technology.
_________________________________________________________________ _________________________________________________________________
8. Licensing Questions 8. Where to Go For Additional Information
_________________________________________________________________
8.1 Why does the UW choose to make the IMAP toolkit available under
this Free-Fork license?
Unlike many other open source licenses, the Free-Fork license
is non-viral.
The Free-Fork license allows developers a broad range of rights
to the IMAP toolkit software, and more options to combine the
IMAP toolkit software with other open source or private-use
software, without requiring that the terms of the Free-Fork
license be enforced on that other software.
The Free-Fork license also allows the IMAP toolkit software to
be licensed under other conditions (for example, distribution
with proprietary software where the IMAP code remains under the
Free-Fork) if a need arises.
_________________________________________________________________
8.2 I want to redistribute a modified version of the IMAP toolkit. How
can I do this?
The Free-Fork license permits redistributions as long as the
IMAP toolkit and any modifications to the toolkit remains under
the Free-Fork license as open source.
Send a message to imap-license@cac.washington.edu if your
application will be proprietary and you need alternative
licensing arrangements , or if you are unsure whether this
blanket permission applies in your case.
_________________________________________________________________
8.3 Can I redistribute an unmodified version of the IMAP toolkit in a
proprietary application?
Yes. The terms of the Free-Fork license apply to all unmodified
distributions.
_________________________________________________________________
8.4 Is the Free-Fork license compatible with GPL?
Yes. A Free-Fork licensee has all the rights of a GPL licensee,
plus additional rights provided under the Free-Fork.
The Free-Fork does not require that software not specifically
licensed under the Free-Fork use the same terms as the
Free-Fork. For example, if you incorporate Free-Fork software
in an application that you write, and put the application under
GPL, that does not cause the Free-Fork software to become GPL.
Someone else can copy your application, strip out the GPL code
so that only the Free-Fork code remains, and by doing so have
Free-Fork rights.
Additionally, a Free-Fork licensee has the right to negotiate
other license terms with the UW.
_________________________________________________________________
9. Where to Go For Additional Information
_________________________________________________________________ _________________________________________________________________
9.1 Where can I go to ask questions? 8.1 Where can I go to ask questions?
9.2 I have some ideas for enhancements to IMAP. Where should I go? 8.2 I have some ideas for enhancements to IMAP. Where should I go?
If you have questions about the IMAP protocol, or want to If you have questions about the IMAP protocol, or want to
participate in discussions of future directions of the IMAP participate in discussions of future directions of the IMAP
protocol, the appropriate mailing list is protocol, the appropriate mailing list is
imap@u.washington.edu. You must be a subscriber to post to the imap@u.washington.edu. You must be a subscriber to post to the
list; to subscribe, use imap-request@u.washington.edu list; to subscribe, use imap-request@u.washington.edu
If you have questions about this software, you can send me If you have questions about this software, you can send me
email directly or use the c-client@u.washington.edu mailing email directly or use the c-client@u.washington.edu mailing
list. You can subscribe to this list via list. You can subscribe to this list via
c-client-request@u.washington.edu c-client-request@u.washington.edu
As an alternative to either of these, you can use the As an alternative to either of these, you can use the
comp.mail.imap newsgroup. comp.mail.imap newsgroup.
_________________________________________________________________ _________________________________________________________________
9.3 Where can I read more about IMAP and other email protocols? 8.3 Where can I read more about IMAP and other email protocols?
We recommend Internet Email Protocols: A Developer's Guide, by We recommend Internet Email Protocols: A Developer's Guide, by
Kevin Johnson, published by Addison Wesley, ISBN 0-201-43288-9. Kevin Johnson, published by Addison Wesley, ISBN 0-201-43288-9.
_________________________________________________________________ _________________________________________________________________
9.4 Where can I find out more about setting up and administering an 8.4 Where can I find out more about setting up and administering an
IMAP server? IMAP server?
We recommend Managing IMAP, by Dianna Mullet & Kevin Mullet, We recommend Managing IMAP, by Dianna Mullet & Kevin Mullet,
published by O'Reilly, ISBN 0-596-00012-X. published by O'Reilly, ISBN 0-596-00012-X.
This book also has an excellent comparison of the UW and Cyrus This book also has an excellent comparison of the UW and Cyrus
IMAP servers. IMAP servers.
Last Updated: 15 June 2004 Last Updated: 8 September 2006
 End of changes. 41 change blocks. 
124 lines changed or deleted 57 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/