imapext-2007

diff docs/FAQ.html @ 0:ada5e610ab86

imap-2007e
author yuuji@gentei.org
date Mon, 14 Sep 2009 15:17:45 +0900
parents
children
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/docs/FAQ.html	Mon Sep 14 15:17:45 2009 +0900
     1.3 @@ -0,0 +1,4226 @@
     1.4 +<!--
     1.5 + * ========================================================================
     1.6 + * Copyright 1988-2007 University of Washington
     1.7 + *
     1.8 + * Licensed under the Apache License, Version 2.0 (the "License");
     1.9 + * you may not use this file except in compliance with the License.
    1.10 + * You may obtain a copy of the License at
    1.11 + *
    1.12 + *     http://www.apache.org/licenses/LICENSE-2.0
    1.13 + *
    1.14 + * 
    1.15 + * ========================================================================
    1.16 + *
    1.17 +-->
    1.18 +
    1.19 +<!--chtml set title="IMAP Toolkit Frequently Asked Questions"-->
    1.20 +<!--chtml include "//imap/incs/top.inc"-->
    1.21 +
    1.22 +  <h2>Table of Contents</h2>
    1.23 +
    1.24 +  <ul>
    1.25 +    <li>
    1.26 +      <a href="#general">1. General/Software Feature Questions</a>
    1.27 +
    1.28 +      <ul>
    1.29 +        <li><a href="#1.1">1.1 Can I set up a POP or IMAP server on
    1.30 +        UNIX/Linux/OSF/etc.?</a></li>
    1.31 +
    1.32 +        <li><a href="#1.2">1.2 I am currently using qpopper as my POP3 server
    1.33 +        on UNIX. Do I need to replace it with ipop3d in order to run
    1.34 +        imapd?</a></li>
    1.35 +
    1.36 +        <li><a href="#1.3">1.3 Can I set up a POP or IMAP server on Windows
    1.37 +        XP, 2000, NT, Me, 98, or 95?</a></li>
    1.38 +
    1.39 +        <li><a href="#1.4">1.4 Can I set up a POP or IMAP server on Windows
    1.40 +        3.1 or DOS?</a></li>
    1.41 +
    1.42 +        <li><a href="#1.5">1.5 Can I set up a POP or IMAP server on
    1.43 +        Macintosh?</a></li>
    1.44 +
    1.45 +        <li><a href="#1.6">1.6 Can I set up a POP or IMAP server on
    1.46 +        VAX/VMS?</a></li>
    1.47 +
    1.48 +        <li><a href="#1.7">1.7 Can I set up a POP or IMAP server on
    1.49 +        TOPS-20?</a></li>
    1.50 +
    1.51 +        <li><a href="#1.8">1.8 Are hierarchical mailboxes supported?</a></li>
    1.52 +
    1.53 +        <li><a href="#1.9">1.9 Are "dual-use" mailboxes supported?</a></li>
    1.54 +
    1.55 +        <li><a href="#1.10">1.10 Can I have a mailbox that has both messages
    1.56 +        and sub-mailboxes?</a></li>
    1.57 +
    1.58 +        <li><a href="#1.11">1.11 What is the difference between "mailbox" and
    1.59 +        "folder"?</a></li>
    1.60 +
    1.61 +        <li><a href="#1.12">1.12 What is the status of
    1.62 +        internationalization?</a></li>
    1.63 +
    1.64 +        <li><a href="#1.13">1.13 Can I use SSL?</a></li>
    1.65 +
    1.66 +        <li><a href="#1.14">1.14 Can I use TLS and the STARTTLS
    1.67 +        facility?</a></li>
    1.68 +
    1.69 +        <li><a href="#1.15">1.15 Can I use CRAM-MD5 authentication?</a></li>
    1.70 +
    1.71 +        <li><a href="#1.16">1.16 Can I use APOP authentication?</a></li>
    1.72 +
    1.73 +        <li><a href="#1.17">1.17 Can I use Kerberos V5?</a></li>
    1.74 +
    1.75 +        <li><a href="#1.18">1.18 Can I use PAM for plaintext
    1.76 +        passwords?</a></li>
    1.77 +
    1.78 +        <li><a href="#1.19">1.19 Can I use Kerberos 5 for plaintext
    1.79 +        passwords?</a></li>
    1.80 +
    1.81 +        <li><a href="#1.20">1.20 Can I use AFS for plaintext
    1.82 +        passwords?</a></li>
    1.83 +
    1.84 +        <li><a href="#1.21">1.21 Can I use DCE for plaintext
    1.85 +        passwords?</a></li>
    1.86 +
    1.87 +        <li><a href="#1.22">1.22 Can I use the CRAM-MD5 database for
    1.88 +        plaintext passwords?</a></li>
    1.89 +
    1.90 +        <li><a href="#1.23">1.23 Can I disable plaintext passwords?</a></li>
    1.91 +
    1.92 +        <li><a href="#1.24">1.24 Can I disable plaintext passwords on
    1.93 +        unencrypted sessions, but allow them on encrypted sessions?</a></li>
    1.94 +
    1.95 +        <li><a href="#1.25">1.25 Can I use virtual hosts?</a></li>
    1.96 +
    1.97 +        <li><a href="#1.26">1.26 Can I use RPOP authentication?</a></li>
    1.98 +
    1.99 +        <li><a href="#1.27">1.27 Can I use Kerberos V4?</a></li>
   1.100 +
   1.101 +        <li><a href="#1.28">1.28 Is there support for S/Key or OTP?</a></li>
   1.102 +
   1.103 +        <li><a href="#1.29">1.29 Is there support for NTLM or SPA?</a></li>
   1.104 +
   1.105 +        <li><a href="#1.30">1.30 Is there support for mh?</a></li>
   1.106 +
   1.107 +        <li><a href="#1.31">1.31 Is there support for qmail and the maildir
   1.108 +        format?</a></li>
   1.109 +
   1.110 +        <li><a href="#1.32">1.32 Is there support for the Cyrus mailbox
   1.111 +        format?</a></li>
   1.112 +
   1.113 +        <li><a href="#1.33">1.33 Is this software Y2K compliant?</a></li>
   1.114 +      </ul>
   1.115 +    </li>
   1.116 +
   1.117 +    <li>
   1.118 +      <a href="#requirements">2. What Do I Need to Build This Software?</a>
   1.119 +
   1.120 +      <ul>
   1.121 +        <li><a href="#2.1">2.1 What do I need to build this software with SSL
   1.122 +        on UNIX?</a></li>
   1.123 +
   1.124 +        <li><a href="#2.2">2.2 What do I need to build this software with
   1.125 +        Kerberos V on UNIX?</a></li>
   1.126 +
   1.127 +        <li><a href="#2.3">2.3 What do I need to use a C++ compiler with this
   1.128 +        software to build my own application?</a></li>
   1.129 +
   1.130 +        <li><a href="#2.4">2.4 What do I need to build this software on
   1.131 +        Windows?</a></li>
   1.132 +
   1.133 +        <li><a href="#2.5">2.5 What do I need to build this software on
   1.134 +        DOS?</a></li>
   1.135 +
   1.136 +        <li><a href="#2.6">2.6 Can't I use Borland C to build this software
   1.137 +        on the PC?</a></li>
   1.138 +
   1.139 +        <li><a href="#2.7">2.7 What do I need to build this software on the
   1.140 +        Mac?</a></li>
   1.141 +
   1.142 +        <li><a href="#2.8">2.8 What do I need to build this software on
   1.143 +        VMS?</a></li>
   1.144 +
   1.145 +        <li><a href="#2.9">2.9 What do I need to build this software on
   1.146 +        TOPS-20?</a></li>
   1.147 +
   1.148 +        <li><a href="#2.10">2.10 What do I need to build this software on
   1.149 +        Amiga or OS/2?</a></li>
   1.150 +
   1.151 +        <li><a href="#2.11">2.11 What do I need to build this software on
   1.152 +        Windows CE?</a></li>
   1.153 +      </ul>
   1.154 +    </li>
   1.155 +
   1.156 +    <li>
   1.157 +      <a href="#build">3. Build and Configuration Questions</a>
   1.158 +
   1.159 +      <ul>
   1.160 +        <li><a href="#3.1">3.1 How do I configure the IMAP and POP servers on
   1.161 +        UNIX?</a></li>
   1.162 +
   1.163 +        <li><a href="#3.2">3.2 I built and installed the servers according to
   1.164 +        the BUILD instructions. It can't be that easy. Don't I need to write
   1.165 +        a config file?</a></li>
   1.166 +
   1.167 +        <li><a href="#3.3">3.3 How do I make the IMAP and POP servers look
   1.168 +        for INBOX at some place other than the mail spool directory?</a></li>
   1.169 +
   1.170 +        <li><a href="#3.4">3.4 How do I make the IMAP server look for
   1.171 +        secondary folders at some place other than the user's home
   1.172 +        directory?</a></li>
   1.173 +
   1.174 +        <li><a href="#3.5">3.5 How do I configure SSL?</a></li>
   1.175 +
   1.176 +        <li><a href="#3.6">3.6 How do I configure TLS and the STARTTLS
   1.177 +        facility?</a></li>
   1.178 +
   1.179 +        <li><a href="#3.7">3.7 How do I build/install OpenSSL and
   1.180 +        obtain/create certificates for use with SSL?</a></li>
   1.181 +
   1.182 +        <li><a href="#3.8">3.8 How do I configure CRAM-MD5
   1.183 +        authentication?</a></li>
   1.184 +
   1.185 +        <li><a href="#3.9">3.9 How do I configure APOP
   1.186 +        authentication?</a></li>
   1.187 +
   1.188 +        <li><a href="#3.10">3.10 How do I configure Kerberos V5?</a></li>
   1.189 +
   1.190 +        <li><a href="#3.11">3.11 How do I configure PAM for plaintext
   1.191 +        passwords?</a></li>
   1.192 +
   1.193 +        <li><a href="#3.12">3.12 It looks like all I have to do to make the
   1.194 +        server use Kerberos is to build with PAM on my Linux system, and set
   1.195 +        it up in PAM for Kerberos passwords. Right?</a></li>
   1.196 +
   1.197 +        <li><a href="#3.13">3.13 How do I configure Kerberos 5 for plaintext
   1.198 +        passwords?</a></li>
   1.199 +
   1.200 +        <li><a href="#3.14">3.14 How do I configure AFS for plaintext
   1.201 +        passwords?</a></li>
   1.202 +
   1.203 +        <li><a href="#3.15">3.15 How do I configure DCE for plaintext
   1.204 +        passwords?</a></li>
   1.205 +
   1.206 +        <li><a href="#3.16">3.16 How do I configure the CRAM-MD5 database for
   1.207 +        plaintext passwords?</a></li>
   1.208 +
   1.209 +        <li><a href="#3.17">3.17 How do I disable plaintext
   1.210 +        passwords?</a></li>
   1.211 +
   1.212 +        <li><a href="#3.18">3.18 How do I disable plaintext passwords on
   1.213 +        unencrypted sessions, but allow them in SSL or TLS sessions?</a></li>
   1.214 +
   1.215 +        <li><a href="#3.19">3.19 How do I configure virtual hosts?</a></li>
   1.216 +
   1.217 +        <li>
   1.218 +          <a href="#3.20">3.20 Why do I get compiler warning messages such
   1.219 +          as:
   1.220 +
   1.221 +          <ul>
   1.222 +            <li>passing arg 3 of `scandir' from incompatible pointer
   1.223 +            type</li>
   1.224 +
   1.225 +            <li>Pointers are not assignment-compatible.</li>
   1.226 +
   1.227 +            <li>Argument #4 is not the correct type.</li>
   1.228 +          </ul>during the build?</a>
   1.229 +        </li>
   1.230 +
   1.231 +        <li>
   1.232 +          <a href="#3.21">3.21 Why do I get compiler warning messages such
   1.233 +          as
   1.234 +
   1.235 +          <ul>
   1.236 +            <li>Operation between types "void(*)(int)" and "void*" is not
   1.237 +            allowed.</li>
   1.238 +
   1.239 +            <li>Function argument assignment between types "void*" and
   1.240 +            "void(*)(int)" is not allowed.</li>
   1.241 +
   1.242 +            <li>Pointers are not assignment-compatible.</li>
   1.243 +
   1.244 +            <li>Argument #5 is not the correct type.</li>
   1.245 +          </ul>during the build?</a>
   1.246 +        </li>
   1.247 +
   1.248 +        <li>
   1.249 +          <a href="#3.22">3.22 Why do I get linker warning messages such
   1.250 +          as:
   1.251 +
   1.252 +          <ul>
   1.253 +            <li>mtest.c:515: the `gets' function is dangerous and should not
   1.254 +            be used.</li>
   1.255 +          </ul>during the build? Isn't this a security bug?</a>
   1.256 +        </li>
   1.257 +
   1.258 +        <li>
   1.259 +          <a href="#3.23">3.23 Why do I get linker warning messages such
   1.260 +          as:</a>
   1.261 +
   1.262 +          <ul>
   1.263 +            <li>auth_ssl.c:92: the `tmpnam' function is dangerous and should
   1.264 +            not be used.</li>
   1.265 +          </ul>during the build? Isn't this a security bug?
   1.266 +        </li>
   1.267 +
   1.268 +        <li><a href="#3.24">3.24 OK, suppose I see a warning message about a
   1.269 +        function being "dangerous and should not be used" for something other
   1.270 +        than this gets() or tmpnam() call?</a></li>
   1.271 +      </ul>
   1.272 +    </li>
   1.273 +
   1.274 +    <li>
   1.275 +      <a href="#operation">4. Operational Questions</a>
   1.276 +
   1.277 +      <ul>
   1.278 +        <li><a href="#4.1">4.1 How can I enable anonymous IMAP
   1.279 +        logins?</a></li>
   1.280 +
   1.281 +        <li><a href="#4.2">4.2 How do I set up an alert message that each
   1.282 +        IMAP user will see?</a></li>
   1.283 +
   1.284 +        <li><a href="#4.3">4.3 How does the c-client library choose which of
   1.285 +        its several mechanisms to use to establish an IMAP connection to the
   1.286 +        server? I noticed that it can connect on port 143, port 993, via rsh,
   1.287 +        and via ssh.</a></li>
   1.288 +
   1.289 +        <li><a href="#4.4">4.4 I am using a TLS-capable IMAP server, so I
   1.290 +        don't need to use /ssl to get encryption. However, I want to be
   1.291 +        certain that my session is TLS encrypted before I send my password.
   1.292 +        How to I do this?</a></li>
   1.293 +
   1.294 +        <li><a href="#4.5">4.5 How do I use one of the alternative formats
   1.295 +        described in the formats.txt document? In particular, I hear that mbx
   1.296 +        format will give me better performance and allow shared
   1.297 +        access.</a></li>
   1.298 +
   1.299 +        <li><a href="#4.6">4.6 How do I set up shared mailboxes?</a></li>
   1.300 +
   1.301 +        <li><a href="#4.7">4.7 How can I make the server syslogs go to
   1.302 +        someplace other than the mail syslog?</a></li>
   1.303 +      </ul>
   1.304 +    </li>
   1.305 +
   1.306 +    <li>
   1.307 +      <a href="#security">5. Security Questions</a>
   1.308 +
   1.309 +      <ul>
   1.310 +        <li><a href="#5.1">5.1 I see that the IMAP server allows access to
   1.311 +        arbitary files on the system, including /etc/passwd! How do I disable
   1.312 +        this?</a></li>
   1.313 +
   1.314 +        <li><a href="#5.2">5.2 I've heard that IMAP servers are insecure. Is
   1.315 +        this true?</a></li>
   1.316 +
   1.317 +        <li><a href="#5.3">5.3 How do I know that I have the most secure
   1.318 +        version of the server?</a></li>
   1.319 +
   1.320 +        <li><a href="#5.4">5.4 I see all these strcpy() and sprintf() calls,
   1.321 +        those are unsafe, aren't they?</a></li>
   1.322 +
   1.323 +        <li><a href="#5.5">5.5 Those /tmp lock files are protected 666, is
   1.324 +        that really right?</a></li>
   1.325 +      </ul>
   1.326 +    </li>
   1.327 +
   1.328 +    <li>
   1.329 +      <a href="#strange">6. <i>Why Did You Do This Strange Thing?</i>
   1.330 +      Questions</a>
   1.331 +
   1.332 +      <ul>
   1.333 +        <li><a href="#6.1">6.1 Why don't you use GNU autoconfig / automake /
   1.334 +        autoblurdybloop?</a></li>
   1.335 +
   1.336 +        <li><a href="#6.2">6.2 Why do you insist upon a build with -g?
   1.337 +        Doesn't it waste disk and memory space?</a></li>
   1.338 +
   1.339 +        <li><a href="#6.3">6.3 Why don't you make c-client a shared
   1.340 +        library?</a></li>
   1.341 +
   1.342 +        <li><a href="#6.4">6.4 Why don't you use iconv() for
   1.343 +        internationalization support?</a></li>
   1.344 +
   1.345 +        <li><a href="#6.5">6.5 Why is the IMAP server connected to the home
   1.346 +        directory by default?</a></li>
   1.347 +
   1.348 +        <li><a href="#6.6">6.6 I have a Windows system. Why isn't the server
   1.349 +        plug and play for me?</a></li>
   1.350 +
   1.351 +        <li><a href="#6.7">6.7 I looked at the UNIX SSL code and saw that you
   1.352 +        have the SSL data payload size set to 8192 bytes. SSL allows 16K; why
   1.353 +        aren't you using the full size?</a></li>
   1.354 +
   1.355 +        <li><a href="#6.8">6.8 Why is an mh format INBOX called #mhinbox
   1.356 +        instead of just INBOX?</a></li>
   1.357 +
   1.358 +        <li><a href="#6.9">6.9 Why don't you support the maildir
   1.359 +        format?</a></li>
   1.360 +
   1.361 +        <li><a href="#6.10">6.10 Why don't you support the Cyrus
   1.362 +        format?</a></li>
   1.363 +
   1.364 +        <li><a href="#6.11">6.11 Why is it creating extra forks on my SVR4
   1.365 +        system?</a></li>
   1.366 +
   1.367 +        <li><a href="#6.12">6.12 Why are you so fussy about the date/time
   1.368 +        format in the internal <code>"From&nbsp;"</code> line in traditional
   1.369 +        UNIX mailbox files? My other mail program just considers every line
   1.370 +        that starts with <code>"From&nbsp;"</code> to be the start of the
   1.371 +        message.</a></li>
   1.372 +
   1.373 +        <li><a href="#6.13">6.13 Why is traditional UNIX format the default
   1.374 +        format?</a></li>
   1.375 +
   1.376 +        <li><a href="#6.14">6.14 Why do you write this "DON'T DELETE THIS
   1.377 +        MESSAGE -- FOLDER INTERNAL DATA" message at the start of traditional
   1.378 +        UNIX and MMDF format mailboxes?</a></li>
   1.379 +
   1.380 +        <li><a href="#6.15">6.15 Why don't you stash the mailbox metadata in
   1.381 +        the first real message of the mailbox instead of writing this fake
   1.382 +        FOLDER INTERNAL DATA message?</a></li>
   1.383 +
   1.384 +        <li><a href="#6.16">6.16 Why aren't "dual-use" mailboxes the
   1.385 +        default?</a></li>
   1.386 +
   1.387 +        <li><a href="#6.17">6.17 Why do you use ucbcc to build on
   1.388 +        Solaris?</a></li>
   1.389 +
   1.390 +        <li><a href="#6.18">6.18 Why should I care about some old system with
   1.391 +        BSD libraries? cc is the right thing on my Solaris system!</a></li>
   1.392 +
   1.393 +        <li><a href="#6.19">6.19 Why do you insist upon writing .lock files
   1.394 +        in the spool directory?</a></li>
   1.395 +
   1.396 +        <li><a href="#6.20">6.20 Why should I care about compatibility with
   1.397 +        the past?</a></li>
   1.398 +      </ul>
   1.399 +    </li>
   1.400 +
   1.401 +    <li>
   1.402 +      <a href="#problems">7. Problems and Annoyances</a>
   1.403 +
   1.404 +      <ul>
   1.405 +        <li><a href="#7.1">7.1 Help! My INBOX is empty! What happened to my
   1.406 +        messages?</a></li>
   1.407 +
   1.408 +        <li><a href="#7.2">7.2 Help! All my messages in a non-INBOX mailbox
   1.409 +        have been concatenated into one message which claims to be from me
   1.410 +        and has a subject of the file name of the mailbox! What's going
   1.411 +        on?</a></li>
   1.412 +
   1.413 +        <li>
   1.414 +          <a href="#7.3">7.3 Why do I get the message:
   1.415 +
   1.416 +          <ul>
   1.417 +            <li>CREATE failed: Can't create mailbox node xxxxxxxxx: File
   1.418 +            exists</li>
   1.419 +          </ul>and how do I fix it?</a>
   1.420 +        </li>
   1.421 +
   1.422 +        <li><a href="#7.4">7.4 Why can't I log in to the server? The user
   1.423 +        name and password are right!</a></li>
   1.424 +
   1.425 +        <li><a href="#7.5">7.5 Help! My load average is soaring and I see
   1.426 +        hundreds of POP and IMAP servers, many logged in as the same
   1.427 +        user!</a></li>
   1.428 +
   1.429 +        <li><a href="#7.6">7.6 Why does mail disappear even though I set
   1.430 +        "keep mail on server"?</a></li>
   1.431 +
   1.432 +        <li>
   1.433 +          <a href="#7.7">7.7 Why do I get the message
   1.434 +
   1.435 +          <ul>
   1.436 +            <li>Moved ##### bytes of new mail to /home/user/mbox from
   1.437 +            /var/spool/mail/user</li>
   1.438 +          </ul>and why did this happen?</a>
   1.439 +        </li>
   1.440 +
   1.441 +        <li><a href="#7.8">7.8 Why isn't it showing the local host name as a
   1.442 +        fully-qualified domain name?</a></li>
   1.443 +
   1.444 +        <li><a href="#7.9">7.9 Why is the local host name in the
   1.445 +        From/Sender/Message-ID headers of outgoing mail not coming out as a
   1.446 +        fully-qualified domain name?</a></li>
   1.447 +
   1.448 +        <li>
   1.449 +          <a href="#7.10">7.10 What does the message:
   1.450 +
   1.451 +          <ul>
   1.452 +            <li>Mailbox vulnerable - directory /var/spool/mail must have 1777
   1.453 +            protection</li>
   1.454 +          </ul>mean? How can I fix this?</a>
   1.455 +        </li>
   1.456 +
   1.457 +        <li>
   1.458 +          <a href="#7.11">7.11 What does the message:
   1.459 +
   1.460 +          <ul>
   1.461 +            <li>Mailbox is open by another process, access is readonly</li>
   1.462 +          </ul>mean? How do I fix this?</a>
   1.463 +        </li>
   1.464 +
   1.465 +        <li>
   1.466 +          <a href="#7.12">7.12 What does the message:
   1.467 +
   1.468 +          <ul>
   1.469 +            <li>Can't get write access to mailbox, access is readonly</li>
   1.470 +          </ul>mean?</a>
   1.471 +        </li>
   1.472 +
   1.473 +        <li><a href="#7.13">7.13 I set my POP3 client to "delete messages
   1.474 +        from server" but they never get deleted. What is wrong?</a></li>
   1.475 +
   1.476 +        <li>
   1.477 +          <a href="#7.14">7.14 What do messages such as:
   1.478 +
   1.479 +          <ul>
   1.480 +            <li>Message ... UID ... already has UID ...</li>
   1.481 +
   1.482 +            <li>Message ... UID ... less than ...</li>
   1.483 +
   1.484 +            <li>Message ... UID ... greater than last ...</li>
   1.485 +
   1.486 +            <li>Invalid UID ... in message ..., rebuilding UIDs</li>
   1.487 +          </ul>mean?</a>
   1.488 +        </li>
   1.489 +
   1.490 +        <li>
   1.491 +          <a href="#7.15">7.15 What do the error messages:
   1.492 +
   1.493 +          <ul>
   1.494 +            <li>Unable to read internal header at ...</li>
   1.495 +
   1.496 +            <li>Unable to find CRLF at ...</li>
   1.497 +
   1.498 +            <li>Unable to parse internal header at ...</li>
   1.499 +
   1.500 +            <li>Unable to parse message date at ...</li>
   1.501 +
   1.502 +            <li>Unable to parse message flags at ...</li>
   1.503 +
   1.504 +            <li>Unable to parse message UID at ...</li>
   1.505 +
   1.506 +            <li>Unable to parse message size at ...</li>
   1.507 +
   1.508 +            <li>Last message (at ... ) runs past end of file ...</li>
   1.509 +          </ul>mean? I am using mbx format.</a>
   1.510 +        </li>
   1.511 +
   1.512 +        <li>
   1.513 +          <a href="#7.16">7.16 What do the syslog messages:
   1.514 +
   1.515 +          <ul>
   1.516 +            <li>imap/tcp server failing (looping)</li>
   1.517 +
   1.518 +            <li>pop3/tcp server failing (looping)</li>
   1.519 +          </ul>mean? When it happens, the listed service shuts down. How can
   1.520 +          I fix this?</a>
   1.521 +        </li>
   1.522 +
   1.523 +        <li>
   1.524 +          <a href="#7.17">7.17 What does the syslog message:
   1.525 +
   1.526 +          <ul>
   1.527 +            <li>Mailbox lock file /tmp/.600.1df3 open failure: Permission
   1.528 +            denied</li>
   1.529 +          </ul>mean?</a>
   1.530 +        </li>
   1.531 +
   1.532 +        <li>
   1.533 +          <a href="#7.18">7.18 What do the syslog messages:
   1.534 +
   1.535 +          <ul>
   1.536 +            <li>Command stream end of file, while reading line user=...
   1.537 +            host=...</li>
   1.538 +
   1.539 +            <li>Command stream end of file, while reading char user=...
   1.540 +            host=...</li>
   1.541 +
   1.542 +            <li>Command stream end of file, while writing text user=...
   1.543 +            host=...</li>
   1.544 +          </ul>mean?</a>
   1.545 +        </li>
   1.546 +
   1.547 +        <li>
   1.548 +          <a href="#7.19">7.19 Why did my POP or IMAP session suddenly
   1.549 +          disconnect? The syslog has the message:
   1.550 +
   1.551 +          <ul>
   1.552 +            <li>Killed (lost mailbox lock) user=... host=...</li>
   1.553 +          </ul></a>
   1.554 +        </li>
   1.555 +
   1.556 +        <li><a href="#7.20">7.20 Why does my IMAP client show all the files
   1.557 +        on the system, recursively from the UNIX root directory?</a></li>
   1.558 +
   1.559 +        <li><a href="#7.21">7.21 Why does my IMAP client show all of my
   1.560 +        files, recursively from my UNIX home directory?</a></li>
   1.561 +
   1.562 +        <li><a href="#7.22">7.22 Why does my IMAP client show that I have
   1.563 +        mailboxes named "#mhinbox", "#mh", "#shared", "#ftp", "#news", and
   1.564 +        "#public"?</a></li>
   1.565 +
   1.566 +        <li><a href="#7.23">7.23 Why does my IMAP client show all my files in
   1.567 +        my home directory?</a></li>
   1.568 +
   1.569 +        <li><a href="#7.24">7.24 Why is there a long delay before I get
   1.570 +        connected to the IMAP or POP server, no matter what client I
   1.571 +        use?</a></li>
   1.572 +
   1.573 +        <li><a href="#7.25">7.25 Why is there a long delay in Pine or any
   1.574 +        other c-client based application call before I get connected to the
   1.575 +        IMAP server? The hang seems to be in the c-client mail_open() call. I
   1.576 +        don't have this problem with any other IMAP client. There is no delay
   1.577 +        connecting to a POP3 or NNTP server with mail_open().</a></li>
   1.578 +
   1.579 +        <li><a href="#7.26">7.26 Why does a message sometimes get split into
   1.580 +        two or more messages on my SUN system?</a></li>
   1.581 +
   1.582 +        <li>
   1.583 +          <a href="#7.27">7.27 Why did my POP or IMAP session suddenly
   1.584 +          disconnect? The syslog has the message:
   1.585 +
   1.586 +          <ul>
   1.587 +            <li>Autologout user=&lt;...my user name...&gt; host=&lt;...my
   1.588 +            imap server...&gt;</li>
   1.589 +          </ul></a>
   1.590 +        </li>
   1.591 +
   1.592 +        <li>
   1.593 +          <a href="#7.28">7.28 What does the UNIX error message:
   1.594 +
   1.595 +          <ul>
   1.596 +            <li>TLS/SSL failure: myserver: SSL negotiation failed</li>
   1.597 +          </ul>mean?</a>
   1.598 +        </li>
   1.599 +
   1.600 +        <li>
   1.601 +          <a href="#7.29">7.29 What does the PC error message:
   1.602 +
   1.603 +          <ul>
   1.604 +            <li>TLS/SSL failure: myserver: Unexpected TCP input
   1.605 +            disconnect</li>
   1.606 +          </ul>mean?</a>
   1.607 +        </li>
   1.608 +
   1.609 +        <li>
   1.610 +          <a href="#7.30">7.30 What does the error message:
   1.611 +
   1.612 +          <ul>
   1.613 +            <li>TLS/SSL failure: myserver: Server name does not match
   1.614 +            certificate</li>
   1.615 +          </ul>mean?</a>
   1.616 +        </li>
   1.617 +
   1.618 +        <li>
   1.619 +          <a href="#7.31">7.31 What does the UNIX error message:
   1.620 +
   1.621 +          <ul>
   1.622 +            <li>TLS/SSL failure: myserver: self-signed certificate</li>
   1.623 +          </ul>mean?</a>
   1.624 +        </li>
   1.625 +
   1.626 +        <li>
   1.627 +          <a href="#7.32">7.32 What does the PC error message
   1.628 +
   1.629 +          <ul>
   1.630 +            <li>TLS/SSL failure: myserver: Self-signed certificate or
   1.631 +            untrusted authority</li>
   1.632 +          </ul>mean?</a>
   1.633 +        </li>
   1.634 +
   1.635 +        <li>
   1.636 +          <a href="#7.33">7.33 What does the UNIX error message:
   1.637 +
   1.638 +          <ul>
   1.639 +            <li>TLS/SSL failure: myserver: unable to get local issuer
   1.640 +            certificate</li>
   1.641 +          </ul>mean?</a>
   1.642 +        </li>
   1.643 +
   1.644 +        <li><a href="#7.34">7.34 Why does reading certain messages hang when
   1.645 +        using Netscape? It works fine with Pine!</a></li>
   1.646 +
   1.647 +        <li><a href="#7.35">7.35 Why does Netscape say that there's a problem
   1.648 +        with the IMAP server and that I should "Contact your mail server
   1.649 +        administrator."?</a></li>
   1.650 +
   1.651 +        <li><a href="#7.36">7.36 Why is one user creating huge numbers of
   1.652 +        IMAP or POP server sessions?</a></li>
   1.653 +
   1.654 +        <li><a href="#7.37">7.37 Why don't I get any new mail notifications
   1.655 +        from Outlook Express or Outlook after a while?</a></li>
   1.656 +
   1.657 +        <li><a href="#7.38">7.38 Why don't I get any new mail notifications
   1.658 +        from Entourage?</a></li>
   1.659 +
   1.660 +        <li><a href="#7.39">7.39 Why doesn't Entourage work at all?</a></li>
   1.661 +
   1.662 +        <li><a href="#7.40">7.40 Why doesn't Netscape Notify (NSNOTIFY.EXE)
   1.663 +        work at all?</a></li>
   1.664 +
   1.665 +        <li><a href="#7.41">7.41 Why can't I connect via SSL to Eudora? It
   1.666 +        says the connection has been broken, and in the server syslogs I see
   1.667 +        "Command stream end of file".</a></li>
   1.668 +
   1.669 +        <li><a href="#7.42">7.42 Sheesh. Aren't there <i>any</i> good IMAP
   1.670 +        clients out there?</a></li>
   1.671 +
   1.672 +        <li>
   1.673 +          <a href="#7.43">7.43 But wait! PC Pine (or other PC program build
   1.674 +          with c-client) crashes with the message
   1.675 +
   1.676 +          <ul>
   1.677 +            <li>incomplete SecBuffer exceeds maximum buffer size</li>
   1.678 +          </ul>when I use SSL connections. This is a bug in c-client, right?</a>
   1.679 +        </li>
   1.680 +
   1.681 +        <li><a href="#7.44">7.44 My qpopper users keep on getting the DON'T
   1.682 +        DELETE THIS MESSAGE -- FOLDER INTERNAL DATA if they also use Pine or
   1.683 +        IMAP. How can I fix this?</a></li>
   1.684 +
   1.685 +        <li><a href="#7.45">7.45 Help! I installed the servers but I can't
   1.686 +        connect to them from my client!</a></li>
   1.687 +
   1.688 +        <li>
   1.689 +          <a href="#7.46">7.46 Why do I get the message
   1.690 +
   1.691 +          <ul>
   1.692 +            <li>Can not authenticate to SMTP server: 421 SMTP connection went
   1.693 +            away!</li>
   1.694 +          </ul>and why did this happen? There was also something about
   1.695 +
   1.696 +          <ul>
   1.697 +            <li>SECURITY PROBLEM: insecure server advertised AUTH=PLAIN</li>
   1.698 +          </ul></a>
   1.699 +        </li>
   1.700 +
   1.701 +        <li>
   1.702 +          <a href="#7.47">7.47 Why do I get the message
   1.703 +
   1.704 +          <ul>
   1.705 +            <li>SMTP Authentication cancelled</li>
   1.706 +          </ul>and why did this happen? There was also something about
   1.707 +
   1.708 +          <ul>
   1.709 +            <li>SECURITY PROBLEM: insecure server advertised AUTH=PLAIN</li>
   1.710 +          </ul></a>
   1.711 +        </li>
   1.712 +
   1.713 +        <li>
   1.714 +          <a href="#7.48">7.48 Why do I get the message
   1.715 +
   1.716 +          <ul>
   1.717 +            <li>Invalid base64 string</li>
   1.718 +          </ul>when I try to authenticate to a Cyrus server?
   1.719 +        </li></a>
   1.720 +      </ul>
   1.721 +    </li>
   1.722 +
   1.723 +    <li>
   1.724 +      <a href="#additional">8. Where to Go For Additional Information</a>
   1.725 +
   1.726 +      <ul>
   1.727 +        <li><a href="#8.1">8.1 Where can I go to ask questions?</a></li>
   1.728 +
   1.729 +        <li><a href="#8.2">8.2 I have some ideas for enhancements to IMAP.
   1.730 +        Where should I go?</a></li>
   1.731 +
   1.732 +        <li><a href="#8.3">8.3 Where can I read more about IMAP and other
   1.733 +        email protocols?</a></li>
   1.734 +
   1.735 +        <li><a href="#8.4">8.4 Where can I find out more about setting up and
   1.736 +        administering an IMAP server?</a></li>
   1.737 +      </ul>
   1.738 +    </li>
   1.739 +  </ul><!--=======START BODY-->
   1.740 +  <hr>
   1.741 +
   1.742 +  <h2><a name="general">1. General/Software Feature Questions</a></h2>
   1.743 +  <hr>
   1.744 +
   1.745 +  <p><a name="1.1"><strong>1.1 Can I set up a POP or IMAP server on
   1.746 +     UNIX/Linux/OSF/etc.?</strong></a></p>
   1.747 +
   1.748 +  <dl>
   1.749 +    <dd>Yes. Refer to the UNIX specific notes in files CONFIG and BUILD.</dd>
   1.750 +  </dl>
   1.751 +
   1.752 +  <p><a href="#top">Back to top</a></p>
   1.753 +  <hr>
   1.754 +
   1.755 +  <p><a name="1.2"><strong>1.2 I am currently using qpopper as my POP3 server on
   1.756 +     UNIX. Do I need to replace it with ipop3d in order to run
   1.757 +     imapd?</strong></a></p>
   1.758 +
   1.759 +  <dl>
   1.760 +    <dd>
   1.761 +      Not necessarily.
   1.762 +
   1.763 +      <p>Although ipop3d interoperates with imapd better than qpopper, imapd
   1.764 +      and qpopper will work together. The few qpopper/imapd interoperability
   1.765 +      issues mostly affect users who use both IMAP and POP3 clients; those
   1.766 +      users would probably be better served if their POP3 server is
   1.767 +      ipop3d.</p>
   1.768 +
   1.769 +      <p>If you are happy with qpopper and just want to add imapd, you should
   1.770 +      do that, and defer a decision on changing qpopper to ipop3d. That way,
   1.771 +      you can get comfortable with imapd's performance, without changing
   1.772 +      anything for your qpopper users.</p>
   1.773 +
   1.774 +      <p>Many sites have subsequently decided to change from qpopper to
   1.775 +      ipop3d in order to get better POP3/IMAP interoperability. If you need
   1.776 +      to do this, you'll know. There also seems to be a way to make qpopper
   1.777 +      work better with imapd; see the answer to the <a href="#7.44">My
   1.778 +      qpopper users keep on getting the DON'T DELETE THIS MESSAGE -- FOLDER
   1.779 +      INTERNAL DATA if they also use Pine or IMAP. How can I fix this?</a>
   1.780 +      question.</p>
   1.781 +    </dd>
   1.782 +  </dl>
   1.783 +
   1.784 +  <p><a href="#top">Back to top</a></p>
   1.785 +  <hr>
   1.786 +
   1.787 +  <p><a name="1.3"><strong>1.3 Can I set up a POP or IMAP server on Windows XP,
   1.788 +     2000, NT, Me, 98, or 95?</strong></a></p>
   1.789 +
   1.790 +  <dl>
   1.791 +    <dd>
   1.792 +      Yes. Refer to the NT specific notes in files CONFIG and BUILD. Also,
   1.793 +      for DOS-based versions of Windows (Windows Me, 98, and 95) you *must*
   1.794 +      set up CRAM-MD5 authentication, as described in md5.txt.
   1.795 +
   1.796 +      <p>There is no file access control on Windows 9x or Me, so you probably
   1.797 +      will have to do modifications to env_unix.c to prevent people from
   1.798 +      hacking others' mail.</p>
   1.799 +
   1.800 +      <p>Note, however, that the server is not plug and play the way it is
   1.801 +      for UNIX.</p>
   1.802 +    </dd>
   1.803 +  </dl>
   1.804 +
   1.805 +  <p><a href="#top">Back to top</a></p>
   1.806 +  <hr>
   1.807 +
   1.808 +  <p><a name="1.4"><strong>1.4 Can I set up a POP or IMAP server on Windows 3.1 or
   1.809 +     DOS?</strong></a><br>
   1.810 +  <a name="1.5"><strong>1.5 Can I set up a POP or IMAP server on
   1.811 +     Macintosh?</strong></a><br>
   1.812 +  <a name="1.6"><strong>1.6 Can I set up a POP or IMAP server on
   1.813 +     VAX/VMS?</strong></a></p>
   1.814 +
   1.815 +  <dl>
   1.816 +    <dd>Yes, it's just a small matter of programming.</dd>
   1.817 +  </dl>
   1.818 +
   1.819 +  <p><a href="#top">Back to top</a></p>
   1.820 +  <hr>
   1.821 +
   1.822 +  <p><a name="1.7"><strong>1.7 Can I set up a POP or IMAP server on
   1.823 +     TOPS-20?</strong></a></p>
   1.824 +
   1.825 +  <dl>
   1.826 +    <dd>
   1.827 +      You have a TOPS-20 system? Cool.
   1.828 +
   1.829 +      <p>If IMAP2 (RFC 1176) is good enough for you, you can use MAPSER which
   1.830 +      is about the ultimate gonzo pure TOPS-20 extended addressing assembly
   1.831 +      language program. Unfortunately, IMAP2 is barely good enough for Pine
   1.832 +      these days, and most other IMAP clients won't work with IMAP2 at all.
   1.833 +      Maybe someone will hack MAPSER to do IMAP4rev1 some day.</p>
   1.834 +
   1.835 +      <p>We don't know if anyone wrote a POP3 server for TOPS-20. There
   1.836 +      definitely was a POP2 server once upon a time.</p>
   1.837 +
   1.838 +      <p>Or you can port the POP and IMAP server from this IMAP toolkit to
   1.839 +      it. All that you need for a first stab is to port the MTX driver.
   1.840 +      That'll probably be just a couple of hours of hacking.</p>
   1.841 +    </dd>
   1.842 +  </dl>
   1.843 +
   1.844 +  <p><a href="#top">Back to top</a></p>
   1.845 +  <hr>
   1.846 +
   1.847 +  <p><a name="1.8"><strong>1.8 Are hierarchical mailboxes
   1.848 +     supported?</strong></a><br>
   1.849 +  <a name="1.9"><strong>1.9 Are "dual-use" mailboxes
   1.850 +     supported?</strong></a><br>
   1.851 +  <a name="1.10"><strong>1.10 Can I have a mailbox that has both messages and
   1.852 +     sub-mailboxes?</strong></a></p>
   1.853 +
   1.854 +  <dl>
   1.855 +    <dd>
   1.856 +      Yes. However, there is one important caveat.
   1.857 +
   1.858 +      <p>Some mailbox formats, including the default which is the traditional
   1.859 +      UNIX mailbox format, are stored as a single file containing all the
   1.860 +      messages. UNIX does not permit a name in the filesystem to be both a
   1.861 +      file and a directory; consequently you can not have a sub-mailbox
   1.862 +      within a mailbox that is in one of these formats.</p>
   1.863 +
   1.864 +      <p>This is not a limitation of the software; this is a limitation of
   1.865 +      UNIX. For example, there are mailbox formats in which the name is a
   1.866 +      directory and each message is a file within that directory; these
   1.867 +      formats support sub-mailboxes within such mailboxes. However, for
   1.868 +      technical reasons, the "flat file" formats are generally preferred
   1.869 +      since they perform better. Read imap-2007/docs/formats.txt for more
   1.870 +      information on this topic.</p>
   1.871 +
   1.872 +      <p>It is always permissible to create a directory that is not a
   1.873 +      mailbox, and have sub-mailboxes under it. The easiest way to create a
   1.874 +      directory is to create a new mailbox inside a directory that doesn't
   1.875 +      already exist. For example, if you create "Mail/testbox" on UNIX, the
   1.876 +      directory "Mail/" will automatically be created and then the mailbox
   1.877 +      "testbox" will be created as a sub-mailbox of "Mail/".</p>
   1.878 +
   1.879 +      <p>It is also possible to create the name "Mail/" directly. Check the
   1.880 +      documentation for your client software to see how to do this with that
   1.881 +      software.</p>
   1.882 +
   1.883 +      <p>Of course, on Windows systems you would use "\" instead of "/".</p>
   1.884 +    </dd>
   1.885 +  </dl>
   1.886 +
   1.887 +  <p><a href="#top">Back to top</a></p>
   1.888 +  <hr>
   1.889 +
   1.890 +  <p><a name="1.11"><strong>1.11 What is the difference between "mailbox" and
   1.891 +     "folder"?</strong></a></p>
   1.892 +
   1.893 +  <dl>
   1.894 +    <dd>
   1.895 +      The term "mailbox" is IMAP-speak for what a lot of software calls a
   1.896 +      "folder" or a "mail folder". However, "folder" is often used in other
   1.897 +      contexts to refer to a directory, for example, in the graphic user
   1.898 +      interface on both Windows and Macintosh.
   1.899 +
   1.900 +      <p>A "mailbox" is specifically defined as a named object that contains
   1.901 +      messages. It is not required to be capable of containing other types of
   1.902 +      objects including other mailboxes; although some mailbox formats will
   1.903 +      permit this.</p>
   1.904 +
   1.905 +      <p>In IMAP-speak, a mailbox which can not contain other mailboxes is
   1.906 +      called a "no-inferiors mailbox". Similarly, a directory which can not
   1.907 +      contain messages is not a mailbox and is called a "no-select name".</p>
   1.908 +    </dd>
   1.909 +  </dl>
   1.910 +
   1.911 +  <p><a href="#top">Back to top</a></p>
   1.912 +  <hr>
   1.913 +
   1.914 +  <p><a name="1.12"><strong>1.12 What is the status of
   1.915 +     internationalization?</strong></a></p>
   1.916 +
   1.917 +  <dl>
   1.918 +    <dd>
   1.919 +      The IMAP toolkit is partially internationalized and multilingualized.
   1.920 +
   1.921 +      <p>Searching is supported in the following charsets: US-ASCII, UTF-8,
   1.922 +      ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6,
   1.923 +      ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10, ISO-8859-11,
   1.924 +      ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16, KOI8-R, KOI8-U
   1.925 +      (alias KOI8-RU), TIS-620, VISCII, ISO-2022-JP, ISO-2022-KR,
   1.926 +      ISO-2022-CN, ISO-2022-JP-1, ISO-2022-JP-2, GB2312 (alias CN-GB),
   1.927 +      CN-GB-12345, BIG5 (alias CN-BIG5), EUC-JP, EUC-KR, Shift_JIS,
   1.928 +      Shift-JIS, KS_C_5601-1987, KS_C_5601-1992, WINDOWS_874, WINDOWS-1250,
   1.929 +      WINDOWS-1251, WINDOWS-1252, WINDOWS-1253, WINDOWS-1254, WINDOWS-1255,
   1.930 +      WINDOWS-1256, WINDOWS-1257, WINDOWS-1258.</p>
   1.931 +
   1.932 +      <p>All ISO-2022-?? charsets are treated identically, and support ASCII,
   1.933 +      JIS Roman, hankaku katakana, ISO-8859-[1 - 10], TIS, GB 2312, JIS X
   1.934 +      0208, JIS X 0212, KSC 5601, and planes 1 and 2 of CNS 11643.</p>
   1.935 +
   1.936 +      <p>EUC-JP includes support for JIS X 0212 and hankaku katakana.</p>
   1.937 +
   1.938 +      <p>c-client library support also exists to convert text in any of the
   1.939 +      above charsets into Unicode, including headers with MIME
   1.940 +      encoded-words.</p>
   1.941 +
   1.942 +      <p>There is no support for localization (e.g. non-English error
   1.943 +      messages) at the present time, but such support is planned.</p>
   1.944 +    </dd>
   1.945 +  </dl>
   1.946 +
   1.947 +  <p><a href="#top">Back to top</a></p>
   1.948 +  <hr>
   1.949 +
   1.950 +  <p><a name="1.13"><strong>1.13 Can I use SSL?</strong></a></p>
   1.951 +
   1.952 +  <dl>
   1.953 +    <dd>Yes. See the answer to the <a href="#3.5">How do I configure SSL?</a>
   1.954 +    question.</dd>
   1.955 +  </dl>
   1.956 +
   1.957 +  <p><a href="#top">Back to top</a></p>
   1.958 +  <hr>
   1.959 +
   1.960 +  <p><a name="1.14"><strong>1.14 Can I use TLS and the STARTTLS
   1.961 +     facility?</strong></a></p>
   1.962 +
   1.963 +  <dl>
   1.964 +    <dd>Yes. See the answer to the <a href="#3.6">How do I configure TLS and
   1.965 +    the STARTTLS facility?</a> question.</dd>
   1.966 +  </dl>
   1.967 +
   1.968 +  <p><a href="#top">Back to top</a></p>
   1.969 +  <hr>
   1.970 +
   1.971 +  <p><a name="1.15"><strong>1.15 Can I use CRAM-MD5
   1.972 +     authentication?</strong></a></p>
   1.973 +
   1.974 +  <dl>
   1.975 +    <dd>Yes. See the answer to the <a href="#3.8">How do I configure CRAM-MD5
   1.976 +    authentication?</a> question.</dd>
   1.977 +  </dl>
   1.978 +
   1.979 +  <p><a href="#top">Back to top</a></p>
   1.980 +  <hr>
   1.981 +
   1.982 +  <p><a name="1.16"><strong>1.16 Can I use APOP authentication?</strong></a></p>
   1.983 +
   1.984 +  <dl>
   1.985 +    <dd>
   1.986 +      Yes. See the <a href="#3.9">How do I configure APOP authentication?</a>
   1.987 +      question.
   1.988 +
   1.989 +      <p>Note that there is no client support for APOP authentication.</p>
   1.990 +    </dd>
   1.991 +  </dl>
   1.992 +
   1.993 +  <p><a href="#top">Back to top</a></p>
   1.994 +  <hr>
   1.995 +
   1.996 +  <p><a name="1.17"><strong>1.17 Can I use Kerberos V5?</strong></a></p>
   1.997 +
   1.998 +  <dl>
   1.999 +    <dd>Yes. See the answer to the <a href="#3.10">How do I configure
  1.1000 +    Kerberos V5?</a> question.</dd>
  1.1001 +  </dl>
  1.1002 +
  1.1003 +  <p><a href="#top">Back to top</a></p>
  1.1004 +  <hr>
  1.1005 +
  1.1006 +  <p><a name="1.18"><strong>1.18 Can I use PAM for plaintext
  1.1007 +     passwords?</strong></a></p>
  1.1008 +
  1.1009 +  <dl>
  1.1010 +    <dd>Yes. See the answer to the <a href="#3.11">How do I configure PAM for
  1.1011 +    plaintext passwords?</a> question.</dd>
  1.1012 +  </dl>
  1.1013 +
  1.1014 +  <p><a href="#top">Back to top</a></p>
  1.1015 +  <hr>
  1.1016 +
  1.1017 +  <p><a name="1.19"><strong>1.19 Can I use Kerberos 5 for plaintext
  1.1018 +     passwords?</strong></a></p>
  1.1019 +
  1.1020 +  <dl>
  1.1021 +    <dd>Yes. See the answer to the <a href="#3.13">How do I configure
  1.1022 +    Kerberos 5 for plaintext passwords?</a> question.</dd>
  1.1023 +  </dl>
  1.1024 +
  1.1025 +  <p><a href="#top">Back to top</a></p>
  1.1026 +  <hr>
  1.1027 +
  1.1028 +  <p><a name="1.20"><strong>1.20 Can I use AFS for plaintext
  1.1029 +     passwords?</strong></a></p>
  1.1030 +
  1.1031 +  <dl>
  1.1032 +    <dd>Yes. See the answer to the <a href="#3.14">How do I configure AFS for
  1.1033 +    plaintext passwords?</a> question.</dd>
  1.1034 +  </dl>
  1.1035 +
  1.1036 +  <p><a href="#top">Back to top</a></p>
  1.1037 +  <hr>
  1.1038 +
  1.1039 +  <p><a name="1.21"><strong>1.21 Can I use DCE for plaintext
  1.1040 +     passwords?</strong></a></p>
  1.1041 +
  1.1042 +  <dl>
  1.1043 +    <dd>Yes. See the answer to the <a href="#3.15">How do I configure DCE for
  1.1044 +    plaintext passwords?</a> question.</dd>
  1.1045 +  </dl>
  1.1046 +
  1.1047 +  <p><a href="#top">Back to top</a></p>
  1.1048 +  <hr>
  1.1049 +
  1.1050 +  <p><a name="1.22"><strong>1.22 Can I use the CRAM-MD5 database for plaintext
  1.1051 +     passwords?</strong></a></p>
  1.1052 +
  1.1053 +  <dl>
  1.1054 +    <dd>Yes. See the answer to the <a href="#3.16">How do I configure the
  1.1055 +    CRAM-MD5 database for plaintext passwords?</a> question.</dd>
  1.1056 +  </dl>
  1.1057 +
  1.1058 +  <p><a href="#top">Back to top</a></p>
  1.1059 +  <hr>
  1.1060 +
  1.1061 +  <p><a name="1.23"><strong>1.23 Can I disable plaintext
  1.1062 +     passwords?</strong></a></p>
  1.1063 +
  1.1064 +  <dl>
  1.1065 +    <dd>Yes. See the answer to the <a href="#3.17">How do I disable plaintext
  1.1066 +    passwords?</a> question.</dd>
  1.1067 +  </dl>
  1.1068 +
  1.1069 +  <p><a href="#top">Back to top</a></p>
  1.1070 +  <hr>
  1.1071 +
  1.1072 +  <p><a name="1.24"><strong>1.24 Can I disable plaintext passwords on unencrypted
  1.1073 +     sessions, but allow them on encrypted sessions?</strong></a></p>
  1.1074 +
  1.1075 +  <dl>
  1.1076 +    <dd>Yes. See the answer to the <a href="#3.18">How do I disable plaintext
  1.1077 +    passwords on unencrypted sessions, but allow them in SSL or TLS
  1.1078 +    sessions?</a> question.</dd>
  1.1079 +  </dl>
  1.1080 +
  1.1081 +  <p><a href="#top">Back to top</a></p>
  1.1082 +  <hr>
  1.1083 +
  1.1084 +  <p><a name="1.25"><strong>1.25 Can I use virtual hosts?</strong></a></p>
  1.1085 +
  1.1086 +  <dl>
  1.1087 +    <dd>Yes. See the answer to the <a href="#3.19">How do I configure virtual
  1.1088 +    hosts?</a> question.</dd>
  1.1089 +  </dl>
  1.1090 +
  1.1091 +  <p><a href="#top">Back to top</a></p>
  1.1092 +  <hr>
  1.1093 +
  1.1094 +  <p><a name="1.26"><strong>1.26 Can I use RPOP authentication?</strong></a></p>
  1.1095 +
  1.1096 +  <dl>
  1.1097 +    <dd>There is no support for RPOP authentication.</dd>
  1.1098 +  </dl>
  1.1099 +
  1.1100 +  <p><a href="#top">Back to top</a></p>
  1.1101 +  <hr>
  1.1102 +
  1.1103 +  <p><a name="1.27"><strong>1.27 Can I use Kerberos V4?</strong></a></p>
  1.1104 +
  1.1105 +  <dl>
  1.1106 +    <dd>
  1.1107 +      Kerberos V4 is not supported. Kerberos V4 client-only contributed code
  1.1108 +      is available in
  1.1109 +      <pre>
  1.1110 +<a href=
  1.1111 +"ftp://ftp.cac.washington.edu/mail/kerberos4-patches.tar.Z">ftp://ftp.cac.washington.edu/mail/kerberos4-patches.tar.Z
  1.1112 +</a>
  1.1113 +</pre>This is a patchkit which must be applied to the IMAP toolkit according
  1.1114 +to the instructions in the patchkit's README. We can not promise that this
  1.1115 +code works.
  1.1116 +    </dd>
  1.1117 +  </dl>
  1.1118 +
  1.1119 +  <p><a href="#top">Back to top</a></p>
  1.1120 +  <hr>
  1.1121 +
  1.1122 +  <p><a name="1.28"><strong>1.28 Is there support for S/Key or
  1.1123 +     OTP?</strong></a></p>
  1.1124 +
  1.1125 +  <dl>
  1.1126 +    <dd>There is currently no support for S/Key or OTP. There may be an OTP
  1.1127 +    SASL authenticator available from third parties.</dd>
  1.1128 +  </dl>
  1.1129 +
  1.1130 +  <p><a href="#top">Back to top</a></p>
  1.1131 +  <hr>
  1.1132 +
  1.1133 +  <p><a name="1.29"><strong>1.29 Is there support for NTLM or
  1.1134 +     SPA?</strong></a></p>
  1.1135 +
  1.1136 +  <dl>
  1.1137 +    <dd>
  1.1138 +      There is currently no support for NTLM or SPA, nor are there any plans
  1.1139 +      to add such support. In general, I avoid vendor-specific mechanisms. I
  1.1140 +      also believe that these mechanisms are being deprecated by their
  1.1141 +      vendor.
  1.1142 +
  1.1143 +      <p>There may be an NTLM SASL authenticator available from third
  1.1144 +      parties.</p>
  1.1145 +    </dd>
  1.1146 +  </dl>
  1.1147 +
  1.1148 +  <p><a href="#top">Back to top</a></p>
  1.1149 +  <hr>
  1.1150 +
  1.1151 +  <p><a name="1.30"><strong>1.30 Is there support for mh?</strong></a></p>
  1.1152 +
  1.1153 +  <dl>
  1.1154 +    <dd>
  1.1155 +      Yes, but only as a legacy format. Your mh format INBOX is accessed by
  1.1156 +      the name "#mhinbox", and all other mh format mailboxes are accessed by
  1.1157 +      prefixing "#mh/" to the name, e.g. "#mh/foo". The mh support uses the
  1.1158 +      "Path:" entry in your .mh_profile file to identify the root directory
  1.1159 +      of your mh format mailboxes.
  1.1160 +
  1.1161 +      <p>Non-legacy use of mh format is not encouraged. There is no support
  1.1162 +      for permanent flags or unique identifiers; furthermore there are known
  1.1163 +      severe performance problems with the mh format.</p>
  1.1164 +    </dd>
  1.1165 +  </dl>
  1.1166 +
  1.1167 +  <p><a href="#top">Back to top</a></p>
  1.1168 +  <hr>
  1.1169 +
  1.1170 +  <p><a name="1.31"><strong>1.31 Is there support for qmail and the maildir
  1.1171 +     format?</strong></a></p>
  1.1172 +
  1.1173 +  <dl>
  1.1174 +    <dd>There is no support for qmail or the maildir format in our
  1.1175 +    distribution, nor are there any plans to add such support. Maildir
  1.1176 +    support may be available from third parties.</dd>
  1.1177 +  </dl>
  1.1178 +
  1.1179 +  <p><a href="#top">Back to top</a></p>
  1.1180 +  <hr>
  1.1181 +
  1.1182 +  <p><a name="1.32"><strong>1.32 Is there support for the Cyrus mailbox
  1.1183 +     format?</strong></a></p>
  1.1184 +
  1.1185 +  <dl>
  1.1186 +    <dd>No.</dd>
  1.1187 +  </dl>
  1.1188 +
  1.1189 +  <p><a href="#top">Back to top</a></p>
  1.1190 +  <hr>
  1.1191 +
  1.1192 +  <p><a name="1.33"><strong>1.33 Is this software Y2K compliant?</strong></a></p>
  1.1193 +
  1.1194 +  <dl>
  1.1195 +    <dd>Please read the files Y2K and calendar.txt.</dd>
  1.1196 +  </dl>
  1.1197 +
  1.1198 +  <p><a href="#top">Back to top</a></p>
  1.1199 +  <hr>
  1.1200 +
  1.1201 +  <p><br></p>
  1.1202 +
  1.1203 +  <h2><a name="requirements">2. What Do I Need to Build This Software?</a></h2>
  1.1204 +  <hr>
  1.1205 +
  1.1206 +  <p><a name="2.1"><strong>2.1 What do I need to build this software with SSL on
  1.1207 +     UNIX?</strong></a></p>
  1.1208 +
  1.1209 +  <dl>
  1.1210 +    <dd>You need to build and install OpenSSL first.</dd>
  1.1211 +  </dl>
  1.1212 +
  1.1213 +  <p><a href="#top">Back to top</a></p>
  1.1214 +  <hr>
  1.1215 +
  1.1216 +  <p><a name="2.2"><strong>2.2 What do I need to build this software with Kerberos
  1.1217 +     V on UNIX?</strong></a></p>
  1.1218 +
  1.1219 +  <dl>
  1.1220 +    <dd>You need to build and install MIT Kerberos first.</dd>
  1.1221 +  </dl>
  1.1222 +
  1.1223 +  <p><a href="#top">Back to top</a></p>
  1.1224 +  <hr>
  1.1225 +
  1.1226 +  <p><a name="2.3"><strong>2.3 What do I need to use a C++ compiler with this
  1.1227 +     software to build my own application?</strong></a></p>
  1.1228 +
  1.1229 +  <dl>
  1.1230 +    <dd>
  1.1231 +      If you are building an application using the c-client library, use the
  1.1232 +      new c-client.h file instead of including the other include files. It
  1.1233 +      seems that c-client.h should define away all the troublesome names that
  1.1234 +      conflict with C++.
  1.1235 +
  1.1236 +      <p>If you use gcc, you may need to use -fno-operator-names as well.</p>
  1.1237 +    </dd>
  1.1238 +  </dl>
  1.1239 +
  1.1240 +  <p><a href="#top">Back to top</a></p>
  1.1241 +  <hr>
  1.1242 +
  1.1243 +  <p><a name="2.4"><strong>2.4 What do I need to build this software on
  1.1244 +     Windows?</strong></a></p>
  1.1245 +
  1.1246 +  <dl>
  1.1247 +    <dd>
  1.1248 +      You need Microsoft Visual C++ 6.0, Visual C++ .NET, or Visual C# .NET
  1.1249 +      (which you can buy from any computer store), along with the Microsoft
  1.1250 +      Platform SDK (which you can download from Microsoft's web site).
  1.1251 +
  1.1252 +      <p>You do not need to install the entire Platform SDK; it suffices to
  1.1253 +      install just the Core SDK and the Internet Development SDK.</p>
  1.1254 +    </dd>
  1.1255 +  </dl>
  1.1256 +
  1.1257 +  <p><a href="#top">Back to top</a></p>
  1.1258 +  <hr>
  1.1259 +
  1.1260 +  <p><a name="2.5"><strong>2.5 What do I need to build this software on
  1.1261 +     DOS?</strong></a></p>
  1.1262 +
  1.1263 +  <dl>
  1.1264 +    <dd>It's been several years since we last attempted to do this. At the
  1.1265 +    time, we used Microsoft C.</dd>
  1.1266 +  </dl>
  1.1267 +
  1.1268 +  <p><a href="#top">Back to top</a></p>
  1.1269 +  <hr>
  1.1270 +
  1.1271 +  <p><a name="2.6"><strong>2.6 Can't I use Borland C to build this software on the
  1.1272 +     PC?</strong></a></p>
  1.1273 +
  1.1274 +  <dl>
  1.1275 +    <dd>Probably not. If you know otherwise, please let us know.</dd>
  1.1276 +  </dl>
  1.1277 +
  1.1278 +  <p><a href="#top">Back to top</a></p>
  1.1279 +  <hr>
  1.1280 +
  1.1281 +  <p><a name="2.7"><strong>2.7 What do I need to build this software on the
  1.1282 +     Mac?</strong></a></p>
  1.1283 +
  1.1284 +  <dl>
  1.1285 +    <dd>It has been several years since we last attempted to do this. At the
  1.1286 +    time, we used Symantec THINK C; but today you'll need a C compiler which
  1.1287 +    allows segments to be more than 32K.</dd>
  1.1288 +  </dl>
  1.1289 +
  1.1290 +  <p><a href="#top">Back to top</a></p>
  1.1291 +  <hr>
  1.1292 +
  1.1293 +  <p><a name="2.8"><strong>2.8 What do I need to build this software on
  1.1294 +     VMS?</strong></a></p>
  1.1295 +
  1.1296 +  <dl>
  1.1297 +    <dd>You need the VMS C compiler, and either the Multinet or Netlib
  1.1298 +    TCP.</dd>
  1.1299 +  </dl>
  1.1300 +
  1.1301 +  <p><a href="#top">Back to top</a></p>
  1.1302 +  <hr>
  1.1303 +
  1.1304 +  <p><a name="2.9"><strong>2.9 What do I need to build this software on
  1.1305 +     TOPS-20?</strong></a></p>
  1.1306 +
  1.1307 +  <dl>
  1.1308 +    <dd>You need the TOPS-20 KCC compiler.</dd>
  1.1309 +  </dl>
  1.1310 +
  1.1311 +  <p><a href="#top">Back to top</a></p>
  1.1312 +  <hr>
  1.1313 +
  1.1314 +  <p><a name="2.10"><strong>2.10 What do I need to build this software on Amiga or
  1.1315 +     OS/2?</strong></a></p>
  1.1316 +
  1.1317 +  <dl>
  1.1318 +    <dd>We don't know.</dd>
  1.1319 +  </dl>
  1.1320 +
  1.1321 +  <p><a href="#top">Back to top</a></p>
  1.1322 +  <hr>
  1.1323 +
  1.1324 +  <p><a name="2.11"><strong>2.11 What do I need to build this software on Windows
  1.1325 +     CE?</strong></a></p>
  1.1326 +
  1.1327 +  <dl>
  1.1328 +    <dd>This port is incomplete. Someone needs to finish it.</dd>
  1.1329 +  </dl>
  1.1330 +
  1.1331 +  <p><a href="#top">Back to top</a></p>
  1.1332 +  <hr>
  1.1333 +
  1.1334 +  <p><br></p>
  1.1335 +
  1.1336 +  <h2><a name="build">3. Build and Configuration Questions</a></h2>
  1.1337 +  <hr>
  1.1338 +
  1.1339 +  <p><a name="3.1"><strong>3.1 How do I configure the IMAP and POP servers on
  1.1340 +     UNIX?</strong></a><br>
  1.1341 +  <a name="3.2"><strong>3.2 I built and installed the servers according to the
  1.1342 +     BUILD instructions. It can't be that easy. Don't I need to write a
  1.1343 +     config file?</strong></a></p>
  1.1344 +
  1.1345 +  <dl>
  1.1346 +    <dd>
  1.1347 +      For ordinary "vanilla" UNIX systems, this software is plug and play;
  1.1348 +      just build it, install it, and you're done. If you have a modified
  1.1349 +      system, then you may want to do additional work; most of this is to a
  1.1350 +      single source code file (env_unix.c on UNIX systems). Read the file
  1.1351 +      CONFIG for more details.
  1.1352 +
  1.1353 +      <p>Yes, it's that easy. There are some additional options, such as SSL
  1.1354 +      or Kerberos, which require additional steps to build. See the relevant
  1.1355 +      questions below.</p>
  1.1356 +    </dd>
  1.1357 +  </dl>
  1.1358 +
  1.1359 +  <p><a href="#top">Back to top</a></p>
  1.1360 +  <hr>
  1.1361 +
  1.1362 +  <p><a name="3.3"><strong>3.3 How do I make the IMAP and POP servers look for
  1.1363 +     INBOX at some place other than the mail spool
  1.1364 +     directory?</strong></a><br>
  1.1365 +  <a name="3.4"><strong>3.4 How do I make the IMAP server look for secondary
  1.1366 +     folders at some place other than the user's home
  1.1367 +     directory?</strong></a></p>
  1.1368 +
  1.1369 +  <dl>
  1.1370 +    <dd>Please read the file CONFIG for discussion of this and other
  1.1371 +    issues.</dd>
  1.1372 +  </dl>
  1.1373 +
  1.1374 +  <p><a href="#top">Back to top</a></p>
  1.1375 +  <hr>
  1.1376 +
  1.1377 +  <p><a name="3.5"><strong>3.5 How do I configure SSL?</strong></a><br>
  1.1378 +  <a name="3.6"><strong>3.6 How do I configure TLS and the STARTTLS
  1.1379 +     facility?</strong></a></p>
  1.1380 +
  1.1381 +  <dl>
  1.1382 +    <dd>
  1.1383 +      imap-2007 supports SSL and TLS client functionality on UNIX and 32-bit
  1.1384 +      Windows for IMAP, POP3, SMTP, and NNTP; and SSL and TLS server
  1.1385 +      functionality on UNIX for IMAP and POP3.
  1.1386 +
  1.1387 +      <p>UNIX SSL build requires that a third-party software package,
  1.1388 +      OpenSSL, be installed on the system first. Read imap-2007/docs/SSLBUILD
  1.1389 +      for more information.</p>
  1.1390 +
  1.1391 +      <p>SSL is supported via undocumented Microsoft interfaces in Windows 9x
  1.1392 +      and NT4; and via standard interfaces in Windows 2000, Windows
  1.1393 +      Millenium, and Windows XP.</p>
  1.1394 +    </dd>
  1.1395 +  </dl>
  1.1396 +
  1.1397 +  <p><a href="#top">Back to top</a></p>
  1.1398 +  <hr>
  1.1399 +
  1.1400 +  <p><a name="3.7"><strong>3.7 How do I build/install OpenSSL and obtain/create
  1.1401 +     certificates for use with SSL?</strong></a></p>
  1.1402 +
  1.1403 +  <dl>
  1.1404 +    <dd>If you need help in doing this, try the contacts mentioned in the
  1.1405 +    OpenSSL README. We do not offer support for OpenSSL or certificates.</dd>
  1.1406 +  </dl>
  1.1407 +
  1.1408 +  <p><a href="#top">Back to top</a></p>
  1.1409 +  <hr>
  1.1410 +
  1.1411 +  <p><a name="3.8"><strong>3.8 How do I configure CRAM-MD5
  1.1412 +     authentication?</strong></a><br>
  1.1413 +  <a name="3.9"><strong>3.9 How do I configure APOP
  1.1414 +     authentication?</strong></a></p>
  1.1415 +
  1.1416 +  <dl>
  1.1417 +    <dd>
  1.1418 +      CRAM-MD5 authentication is enabled in the IMAP and POP3 client code on
  1.1419 +      all platforms. Read md5.txt to learn how to set up CRAM-MD5 and APOP
  1.1420 +      authentication on UNIX and NT servers.
  1.1421 +
  1.1422 +      <p>There is no support for APOP client authentication.</p>
  1.1423 +    </dd>
  1.1424 +  </dl>
  1.1425 +
  1.1426 +  <p><a href="#top">Back to top</a></p>
  1.1427 +  <hr>
  1.1428 +
  1.1429 +  <p><a name="3.10"><strong>3.10 How do I configure Kerberos V5?</strong></a></p>
  1.1430 +
  1.1431 +  <dl>
  1.1432 +    <dd>
  1.1433 +      imap-2007 supports client and server functionality on UNIX and 32-bit
  1.1434 +      Windows.
  1.1435 +
  1.1436 +      <p>Kerberos V5 is supported by default in Windows 2000 builds:</p>
  1.1437 +      <pre>
  1.1438 + nmake -f makefile.w2k
  1.1439 +</pre>
  1.1440 +
  1.1441 +      <p>Other builds require that a third-party Kerberos package, e.g. MIT
  1.1442 +      Kerberos, be installed on the system first.</p>
  1.1443 +
  1.1444 +      <p>To build with Kerberos V5 on UNIX, include EXTRAAUTHENTICATORS=gss
  1.1445 +      in the make command line, e.g.</p>
  1.1446 +      <pre>
  1.1447 + make lnp EXTRAAUTHENTICATORS=gss
  1.1448 +</pre>
  1.1449 +
  1.1450 +      <p>To build with Kerberos V5 on Windows 9x, Windows Millenium, and NT4,
  1.1451 +      use the "makefile.ntk" file instead of "makefile.nt":</p>
  1.1452 +      <pre>
  1.1453 +
  1.1454 + nmake -f makefile.ntk
  1.1455 +</pre>
  1.1456 +    </dd>
  1.1457 +  </dl>
  1.1458 +
  1.1459 +  <p><a href="#top">Back to top</a></p>
  1.1460 +  <hr>
  1.1461 +
  1.1462 +  <p><a name="3.11"><strong>3.11 How do I configure PAM for plaintext
  1.1463 +     passwords?</strong></a></p>
  1.1464 +
  1.1465 +  <dl>
  1.1466 +    <dd>
  1.1467 +      On Linux systems, use the lnp port, e.g.
  1.1468 +      <pre>
  1.1469 + make lnp
  1.1470 +
  1.1471 +</pre>On Solaris systems and other systems with defective PAM
  1.1472 +implementations, build with PASSWDTYPE=pmb, e.g.
  1.1473 +      <pre>
  1.1474 + make sol PASSWDTYPE=pmb
  1.1475 +</pre>On all other systems, build with PASSWDTYPE=pam, e.g
  1.1476 +      <pre>
  1.1477 + make foo PASSWDTYPE=pam
  1.1478 +</pre>If you build with PASSWDTYPE=pam and authentication does not work, try
  1.1479 +rebuilding (after a "make clean") with PASSWDTYPE=pmb.
  1.1480 +    </dd>
  1.1481 +  </dl>
  1.1482 +
  1.1483 +  <p><a href="#top">Back to top</a></p>
  1.1484 +  <hr>
  1.1485 +
  1.1486 +  <p><a name="3.12"><strong>3.12 It looks like all I have to do to make the server
  1.1487 +     use Kerberos is to build with PAM on my Linux system, and set it up in
  1.1488 +     PAM for Kerberos passwords. Right?</strong></a></p>
  1.1489 +
  1.1490 +  <dl>
  1.1491 +    <dd>
  1.1492 +      Yes and no.
  1.1493 +
  1.1494 +      <p>Doing this will make plaintext password authentication use the
  1.1495 +      Kerberos password instead of the /etc/passwd password.</p>
  1.1496 +
  1.1497 +      <p>However, this will NOT give you Kerberos-secure authentication. See
  1.1498 +      the answer to the <a href="#3.10">How do I configure Kerberos V5?</a>
  1.1499 +      question for how to build with Kerberos-secure authentication.</p>
  1.1500 +    </dd>
  1.1501 +  </dl>
  1.1502 +
  1.1503 +  <p><a href="#top">Back to top</a></p>
  1.1504 +  <hr>
  1.1505 +
  1.1506 +  <p><a name="3.13"><strong>3.13 How do I configure Kerberos 5 for plaintext
  1.1507 +     passwords?</strong></a></p>
  1.1508 +
  1.1509 +  <dl>
  1.1510 +    <dd>
  1.1511 +      Build with PASSWDTYPE=gss, e.g.
  1.1512 +      <pre>
  1.1513 + make sol PASSWDTYPE=gss
  1.1514 +</pre>However, this will NOT give you Kerberos-secure authentication. See the
  1.1515 +answer to the <a href="#3.10">How do I configure Kerberos V5?</a> question
  1.1516 +for how to build with Kerberos-secure authentication.
  1.1517 +    </dd>
  1.1518 +  </dl>
  1.1519 +
  1.1520 +  <p><a href="#top">Back to top</a></p>
  1.1521 +  <hr>
  1.1522 +
  1.1523 +  <p><a name="3.14"><strong>3.14 How do I configure AFS for plaintext
  1.1524 +     passwords?</strong></a></p>
  1.1525 +
  1.1526 +  <dl>
  1.1527 +    <dd>
  1.1528 +      Build with PASSWDTYPE=afs, e.g
  1.1529 +      <pre>
  1.1530 + make sol PASSWDTYPE=afs
  1.1531 +
  1.1532 +</pre>
  1.1533 +    </dd>
  1.1534 +  </dl>
  1.1535 +
  1.1536 +  <p><a href="#top">Back to top</a></p>
  1.1537 +  <hr>
  1.1538 +
  1.1539 +  <p><a name="3.15"><strong>3.15 How do I configure DCE for plaintext
  1.1540 +     passwords?</strong></a></p>
  1.1541 +
  1.1542 +  <dl>
  1.1543 +    <dd>
  1.1544 +      Build with PASSWDTYPE=dce, e.g
  1.1545 +      <pre>
  1.1546 + make sol PASSWDTYPE=dce
  1.1547 +</pre>
  1.1548 +    </dd>
  1.1549 +  </dl>
  1.1550 +
  1.1551 +  <p><a href="#top">Back to top</a></p>
  1.1552 +  <hr>
  1.1553 +
  1.1554 +  <p><a name="3.16"><strong>3.16 How do I configure the CRAM-MD5 database for
  1.1555 +     plaintext passwords?</strong></a></p>
  1.1556 +
  1.1557 +  <dl>
  1.1558 +    <dd>
  1.1559 +      The CRAM-MD5 password database is automatically used for plaintext
  1.1560 +      password if it exists.
  1.1561 +
  1.1562 +      <p>Note that this is NOT CRAM-MD5-secure authentication. You probably
  1.1563 +      want to consider disabling plaintext passwords for non-SSL/TLS
  1.1564 +      sessions. See the next two questions.</p>
  1.1565 +    </dd>
  1.1566 +  </dl>
  1.1567 +
  1.1568 +  <p><a href="#top">Back to top</a></p>
  1.1569 +  <hr>
  1.1570 +
  1.1571 +  <p><a name="3.17"><strong>3.17 How do I disable plaintext
  1.1572 +     passwords?</strong></a></p>
  1.1573 +
  1.1574 +  <dl>
  1.1575 +    <dd>
  1.1576 +      Server-level plaintext passwords can be disabled by setting
  1.1577 +      PASSWDTYPE=nul, e.g.
  1.1578 +      <pre>
  1.1579 + make lnx EXTRAAUTHENTICATORS=gss PASSWDTYPE=nul
  1.1580 +</pre>Note that you must have a CRAM-MD5 database installed or specify at
  1.1581 +least one EXTRAAUTHENTICATOR, otherwise it will not be possible to log in to
  1.1582 +the server.
  1.1583 +
  1.1584 +      <p>When plaintext passwords are disabled, the IMAP server will
  1.1585 +      advertise the LOGINDISABLED capability and the POP3 server will not
  1.1586 +      advertise the USER capability.</p>
  1.1587 +    </dd>
  1.1588 +  </dl>
  1.1589 +
  1.1590 +  <p><a href="#top">Back to top</a></p>
  1.1591 +
  1.1592 +  <p><a name="3.18"><strong>3.18 How do I disable plaintext passwords on
  1.1593 +     unencrypted sessions, but allow them in SSL or TLS
  1.1594 +     sessions?</strong></a></p>
  1.1595 +
  1.1596 +  <dl>
  1.1597 +    <dd>
  1.1598 +      <p>Do not set PASSWDTYPE=nul or SSLTYPE=unix. Set SSLTYPE=nopwd
  1.1599 +      instead, e.g.</p>
  1.1600 +      <pre>
  1.1601 + make lnx SSLTYPE=nopwd
  1.1602 +</pre>
  1.1603 +
  1.1604 +      <p>When plaintext passwords are disabled, the IMAP server will
  1.1605 +      advertise the LOGINDISABLED capability and the POP3 server will not
  1.1606 +      advertise the USER capability.</p>
  1.1607 +
  1.1608 +      <p>Plaintext passwords will always be enabled in SSL sessions; the IMAP
  1.1609 +      server will not advertise the LOGINDISABLED capability and the POP3
  1.1610 +      server will advertise the USER capability.</p>
  1.1611 +
  1.1612 +      <p>If the client does a successful start-TLS in a non-SSL session,
  1.1613 +      plaintext passwords will be enabled, and a new CAPABILITY or CAPA
  1.1614 +      command (which is required after start-TLS) will show the effect as in
  1.1615 +      SSL sessions.</p>
  1.1616 +    </dd>
  1.1617 +  </dl>
  1.1618 +
  1.1619 +  <p><a href="#top">Back to top</a></p>
  1.1620 +  <hr>
  1.1621 +
  1.1622 +  <p><a name="3.19"><strong>3.19 How do I configure virtual
  1.1623 +     hosts?</strong></a></p>
  1.1624 +
  1.1625 +  <dl>
  1.1626 +    <dd>
  1.1627 +      This is automatic, but with certain restrictions.
  1.1628 +
  1.1629 +      <p>The most important one is that each virtual host must have its own
  1.1630 +      IP address; otherwise the server has no way of knowing which virtual
  1.1631 +      host is desired.</p>
  1.1632 +
  1.1633 +      <p>As distributed, the software uses a global password file; hence user
  1.1634 +      "fred" on one virtual host is "fred" on all virtual hosts. You may want
  1.1635 +      to modify the checkpw() routine to implement some other policy (e.g.
  1.1636 +      separate password files).</p>
  1.1637 +
  1.1638 +      <p>Note that the security model assumes that all users have their own
  1.1639 +      unique UNIX UID number. So if you use separate password files you
  1.1640 +      should make certain that the UID numbers do not overlap between
  1.1641 +      different files.</p>
  1.1642 +
  1.1643 +      <p>More advanced virtual host support may be available as patches from
  1.1644 +      third parties.</p>
  1.1645 +    </dd>
  1.1646 +  </dl>
  1.1647 +
  1.1648 +  <p><a href="#top">Back to top</a></p>
  1.1649 +  <hr>
  1.1650 +
  1.1651 +  <p><a name="3.20"><strong>3.20 Why do I get compiler warning messages such
  1.1652 +     as:</strong></a></p>
  1.1653 +  <pre>
  1.1654 + passing arg 3 of `scandir' from incompatible pointer type
  1.1655 + Pointers are not assignment-compatible.
  1.1656 + Argument #4 is not the correct type.
  1.1657 +
  1.1658 +</pre>
  1.1659 +
  1.1660 +  <p><strong>during the build?</strong></p>
  1.1661 +
  1.1662 +  <dl>
  1.1663 +    <dd>
  1.1664 +      You can safely ignore these messages.
  1.1665 +
  1.1666 +      <p>Over the years, the prototype for scandir() has changed, and thus is
  1.1667 +      variant across different UNIX platforms. In particular, the definitions
  1.1668 +      of the third argument (type select_t) and fourth argument (type
  1.1669 +      compar_t) have changed over the years, the issue being whether or not
  1.1670 +      the arguments to the functions pointed to by these function pointers
  1.1671 +      are of type const or not.</p>
  1.1672 +
  1.1673 +      <p>The way that c-client calls scandir() will tend to generate these
  1.1674 +      compiler warnings on newer systems such as Linux; however, it will
  1.1675 +      still build. The problem with fixing the call is that then it won't
  1.1676 +      build on older systems.</p>
  1.1677 +    </dd>
  1.1678 +  </dl>
  1.1679 +
  1.1680 +  <p><a href="#top">Back to top</a></p>
  1.1681 +  <hr>
  1.1682 +
  1.1683 +  <p><a name="3.21"><strong>3.21 Why do I get compiler warning messages such
  1.1684 +     as</strong></a></p>
  1.1685 +  <pre>
  1.1686 + Operation between types "void(*)(int)" and "void*" is not allowed.
  1.1687 + Function argument assignment between types "void*" and "void(*)(int)" is not allowed.
  1.1688 + Pointers are not assignment-compatible.
  1.1689 + Argument #5 is not the correct type.
  1.1690 +</pre>
  1.1691 +
  1.1692 +  <p><strong>during the build?</strong></p>
  1.1693 +
  1.1694 +  <dl>
  1.1695 +    <dd>
  1.1696 +      You can safely ignore these messages.
  1.1697 +
  1.1698 +      <p>All known systems have no problem with casting a function pointer
  1.1699 +      to/from a void* pointer, certain C compilers issue a compiler
  1.1700 +      diagnostic because this facility is listed as a "Common extension" by
  1.1701 +      the C standard:</p>
  1.1702 +      <pre>
  1.1703 + K.5.7  Function pointer casts
  1.1704 +  [#1] A pointer to an object or to void may be cast to a pointer
  1.1705 +       to a function, allowing data to be invoked as a function (6.3.4).
  1.1706 +  [#2] A pointer to a function may be cast to a pointer to an
  1.1707 +       object or to void, allowing a function to be inspected or
  1.1708 +       modified (for example, by a debugger) (6.3.4).
  1.1709 +
  1.1710 +</pre>It may be just a "common extension", but this facility is relied upon
  1.1711 +heavily by c-client.
  1.1712 +    </dd>
  1.1713 +  </dl>
  1.1714 +
  1.1715 +  <p><a href="#top">Back to top</a></p>
  1.1716 +  <hr>
  1.1717 +
  1.1718 +  <p><a name="3.22"><strong>3.22 Why do I get linker warning messages such
  1.1719 +     as:</strong></a></p>
  1.1720 +  <pre>
  1.1721 +mtest.c:515: the `gets' function is dangerous and should not be used.
  1.1722 +</pre>
  1.1723 +
  1.1724 +  <p><strong>during the build? Isn't this a security bug?</strong></p>
  1.1725 +
  1.1726 +  <dl>
  1.1727 +    <dd>
  1.1728 +      You can safely ignore this message.
  1.1729 +
  1.1730 +      <p>Certain linkers, most notably on Linux, give this warning message.
  1.1731 +      It is indeed true that the traditional gets() function is not a safe
  1.1732 +      one.</p>
  1.1733 +
  1.1734 +      <p>However, the mtest program is only a demonstration program, a model
  1.1735 +      of a very basic application program using c-client. It is not something
  1.1736 +      that you would install, much less run in any security-sensitive
  1.1737 +      context.</p>
  1.1738 +
  1.1739 +      <p>mtest has numerous other shortcuts that you wouldn't want to do in a
  1.1740 +      real application program.</p>
  1.1741 +
  1.1742 +      <p>The only "security bug" with mtest would be if it was run by some
  1.1743 +      script in a security-sensitive context, but mtest isn't particularly
  1.1744 +      useful for such purposes. If you wanted to write a script to automate
  1.1745 +      some email task using c-client, you'd be better off using imapd instead
  1.1746 +      of mtest.</p>
  1.1747 +
  1.1748 +      <p>mtest only has two legitimate uses. It's a useful testbed for me
  1.1749 +      when debugging new versions of c-client, and it's useful as a model for
  1.1750 +      someone writing a simple c-client application to see how the various
  1.1751 +      calls work.</p>
  1.1752 +
  1.1753 +      <p>By the way, if you need a more advanced example of c-client
  1.1754 +      programming than mtest (and you probably will), I recommend that you
  1.1755 +      look at the source code for imapd and Pine.</p>
  1.1756 +    </dd>
  1.1757 +  </dl>
  1.1758 +
  1.1759 +  <p><a href="#top">Back to top</a></p>
  1.1760 +  <hr>
  1.1761 +
  1.1762 +  <p><a name="3.23"><strong>3.23 Why do I get linker warning messages such
  1.1763 +     as:</strong></a></p>
  1.1764 +  <pre>
  1.1765 + auth_ssl.c:92: the `tmpnam' function is dangerous and should not be used.
  1.1766 +</pre>
  1.1767 +
  1.1768 +  <p><strong>during the build? Isn't this a security bug?</strong></p>
  1.1769 +
  1.1770 +  <dl>
  1.1771 +    <dd>
  1.1772 +      You can safely ignore this message.
  1.1773 +
  1.1774 +      <p>Certain linkers, most notably on Linux, give this warning message,
  1.1775 +      based upon two known issues with tmpnam():</p>
  1.1776 +
  1.1777 +      <dl>
  1.1778 +        <dd>there can be a buffer overflow if an inadequate buffer is
  1.1779 +        allocated.</dd>
  1.1780 +
  1.1781 +        <dd>there can be a timing race caused by certain incautious usage of
  1.1782 +        the return value.</dd>
  1.1783 +      </dl>
  1.1784 +
  1.1785 +      <p>Neither of these issues applies in the particular use that is made
  1.1786 +      of tmpnam(). More importantly, the tmpnam() call is never executed on
  1.1787 +      Linux systems.</p>
  1.1788 +    </dd>
  1.1789 +  </dl>
  1.1790 +
  1.1791 +  <p><a href="#top">Back to top</a></p>
  1.1792 +  <hr>
  1.1793 +
  1.1794 +  <p><a name="3.24"><strong>3.24 OK, suppose I see a warning message about a
  1.1795 +     function being "dangerous and should not be used" for something other
  1.1796 +     than this gets() or tmpnam() call?</strong></a></p>
  1.1797 +
  1.1798 +  <dl>
  1.1799 +    <dd>Please forward the details for investigation.</dd>
  1.1800 +  </dl>
  1.1801 +
  1.1802 +  <p><a href="#top">Back to top</a></p>
  1.1803 +  <hr>
  1.1804 +
  1.1805 +  <p><br></p>
  1.1806 +
  1.1807 +  <h2><a name="operation">4. Operational Questions</a></h2>
  1.1808 +  <hr>
  1.1809 +
  1.1810 +  <p><a name="4.1"><strong>4.1 How can I enable anonymous IMAP
  1.1811 +     logins?</strong></a></p>
  1.1812 +
  1.1813 +  <dl>
  1.1814 +    <dd>Create the file /etc/anonymous.newsgroups. At the present time, this
  1.1815 +    file should be empty. This will permit IMAP logins as anonymous as well
  1.1816 +    as the ANONYMOUS SASL authenticator. Anonymous users have access to
  1.1817 +    mailboxes in the #news., #ftp/, and #public/ namespaces only.</dd>
  1.1818 +  </dl>
  1.1819 +
  1.1820 +  <p><a href="#top">Back to top</a></p>
  1.1821 +  <hr>
  1.1822 +
  1.1823 +  <p><a name="4.2"><strong>4.2 How do I set up an alert message that each IMAP
  1.1824 +     user will see?</strong></a></p>
  1.1825 +
  1.1826 +  <dl>
  1.1827 +    <dd>Create the file /etc/imapd.alert with the text of the message. This
  1.1828 +    text should be kept to one line if possible. Note that this will cause an
  1.1829 +    alert to every IMAP user every time they initiate an IMAP session, so it
  1.1830 +    should only be used for critical messages.</dd>
  1.1831 +  </dl>
  1.1832 +
  1.1833 +  <p><a href="#top">Back to top</a></p>
  1.1834 +  <hr>
  1.1835 +
  1.1836 +  <p><a name="4.3"><strong>4.3 How does the c-client library choose which of its
  1.1837 +     several mechanisms to use to establish an IMAP connection to the server?
  1.1838 +     I noticed that it can connect on port 143, port 993, via rsh, and via
  1.1839 +     ssh.</strong></a></p>
  1.1840 +
  1.1841 +  <dl>
  1.1842 +    <dd>
  1.1843 +      c-client chooses how to establish an IMAP connection via the following
  1.1844 +      rules:
  1.1845 +
  1.1846 +      <ul>
  1.1847 +        <li>If /ssl is specified, use an SSL connection. Fail otherwise.</li>
  1.1848 +
  1.1849 +        <li>Else if client is a UNIX system and "ssh server exec /etc/rimapd"
  1.1850 +        works, use that</li>
  1.1851 +
  1.1852 +        <li>Else if /tryssl is specified and an SSL connection works, use
  1.1853 +        that.</li>
  1.1854 +
  1.1855 +        <li>Else if client is a UNIX system and "rsh server exec /etc/rimapd"
  1.1856 +        works, use that.</li>
  1.1857 +
  1.1858 +        <li>Else use a non-SSL connection.</li>
  1.1859 +      </ul>
  1.1860 +    </dd>
  1.1861 +  </dl>
  1.1862 +
  1.1863 +  <p><a href="#top">Back to top</a></p>
  1.1864 +  <hr>
  1.1865 +
  1.1866 +  <p><a name="4.4"><strong>4.4 I am using a TLS-capable IMAP server, so I don't
  1.1867 +     need to use /ssl to get encryption. However, I want to be certain that
  1.1868 +     my session is TLS encrypted before I send my password. How to I do
  1.1869 +     this?</strong></a></p>
  1.1870 +
  1.1871 +  <dl>
  1.1872 +    <dd>Use the /tls option in the mailbox name. This will cause an error
  1.1873 +    message and the connection to fail if the server does not negotiate
  1.1874 +    STARTTLS.</dd>
  1.1875 +  </dl>
  1.1876 +
  1.1877 +  <p><a href="#top">Back to top</a></p>
  1.1878 +  <hr>
  1.1879 +
  1.1880 +  <p><a name="4.5"><strong>4.5 How do I use one of the alternative formats
  1.1881 +     described in the formats.txt document? In particular, I hear that mbx
  1.1882 +     format will give me better performance and allow shared
  1.1883 +     access.</strong></a></p>
  1.1884 +
  1.1885 +  <dl>
  1.1886 +    <dd>
  1.1887 +      The rumors about mbx format being preferred are true. It is faster than
  1.1888 +      the traditional UNIX mailbox format and permits shared access.
  1.1889 +
  1.1890 +      <p>However, and this is <em>very important</em>, note that using an
  1.1891 +      alternative mailbox format is an advanced facility, and only expert
  1.1892 +      users should undertake it. If you don't understand any of the following
  1.1893 +      notes, you may not be enough of an expert yet, and are probably better
  1.1894 +      off not going this route until you are more comfortable with your
  1.1895 +      understanding.</p>
  1.1896 +
  1.1897 +      <p>Some of the formats, including mbx, are only supported by the
  1.1898 +      software based on the c-client library, and are not recognized by other
  1.1899 +      mailbox programs. The "vi" editor will corrupt any mbx format mailbox
  1.1900 +      that it encounters.</p>
  1.1901 +
  1.1902 +      <p>Another problem is that the certain formats, including mbx, use
  1.1903 +      advanced file access and locking techniques that do <em>not</em> work
  1.1904 +      reliably with NFS. NFS is not a real filesystem. Use IMAP instead of
  1.1905 +      NFS for distributed access.</p>
  1.1906 +
  1.1907 +      <p>Each of the following steps are in escalating order of involvement.
  1.1908 +      The further you go down this list, the more deeply committed you
  1.1909 +      become:</p>
  1.1910 +
  1.1911 +      <ul>
  1.1912 +        <li>The simplest way to create a mbx-format mailbox is to prefix the
  1.1913 +        name with "#driver.mbx/" when creating a mailbox through c-client.
  1.1914 +        For example, if you create "#driver.mbx/foo", the mailbox "foo" will
  1.1915 +        be created in mbx format. Only use "#driver.mbx/" when creating the
  1.1916 +        mailbox. At all other times, just use the name ("foo" in this
  1.1917 +        example); the software will automatically select the driver for mbx
  1.1918 +        whenever that mailbox is accessed without you doing anything
  1.1919 +        else.</li>
  1.1920 +
  1.1921 +        <li>You can use the "mailutil copy" command to copy an existing
  1.1922 +        mailbox to a new mailbox in mbx format. Read the man page provided
  1.1923 +        with the mailutil program for details.</li>
  1.1924 +
  1.1925 +        <li>If you create an mbx-format INBOX, by creating
  1.1926 +        "#driver.mbx/INBOX" (note that "INBOX" must be all uppercase), then
  1.1927 +        subsequent access to INBOX by any c-client based application will use
  1.1928 +        the mbx-format INBOX. Any mail delivered to the traditional format
  1.1929 +        mailbox in the spool directory (e.g. /var/spool/mail/$USER) will
  1.1930 +        automatically be copied into the mbx-format INBOX and the spool
  1.1931 +        directory copy removed.</li>
  1.1932 +
  1.1933 +        <li>You can cause any newly-created mailboxes to be in mbx-format by
  1.1934 +        default by changing the definition of CREATEPROTO=unixproto to be
  1.1935 +        CREATEPROTO=mbxproto in src/osdep/unix/Makefile, then rebuilding the
  1.1936 +        IMAP toolkit (do a "make clean" first). Do not change EMPTYPROTO,
  1.1937 +        since mbx format mailboxes are never a zero-byte file. If you use
  1.1938 +        Pine or the imap-utils, you should probably also rebuild them with
  1.1939 +        the new IMAP toolkit too.</li>
  1.1940 +
  1.1941 +        <li>You can deliver directly to the mbx-format INBOX by use of the
  1.1942 +        tmail or dmail programs. tmail is for direct invocation from sendmail
  1.1943 +        (or whatever MTA program you use); dmail is for calls from procmail.
  1.1944 +        Both of these programs have man pages which must be read carefully
  1.1945 +        before making this change.</li>
  1.1946 +      </ul>
  1.1947 +
  1.1948 +      <p>Most other servers (e.g. Cyrus) require use of a non-standard
  1.1949 +      format. A full-fledged format conversion is not significantly different
  1.1950 +      from what you have to do with other servers. The difference, which
  1.1951 +      makes format conversion procedures somewhat more complicated with this
  1.1952 +      server, is that there is no "all or nothing" requirement with this
  1.1953 +      server. There are many points in between. A format conversion can be
  1.1954 +      anything from a single mailbox or single user, to systemwide.</p>
  1.1955 +
  1.1956 +      <p>This is good in that you can decide how far to go, or do the steps
  1.1957 +      incrementally as you become more comfortable with the result. On the
  1.1958 +      other hand, there's no "One True Way" which can be boiled down to a
  1.1959 +      simple set of pedagogical instructions.</p>
  1.1960 +
  1.1961 +      <p>A number of sites have done full-fledged format conversions, and are
  1.1962 +      reportedly quite happy with the results. Feel free to ask in the
  1.1963 +      comp.mail.imap newsgroup or the imap-uw mailing list for advice or
  1.1964 +      help.</p>
  1.1965 +    </dd>
  1.1966 +  </dl>
  1.1967 +
  1.1968 +  <p><a href="#top">Back to top</a></p>
  1.1969 +  <hr>
  1.1970 +
  1.1971 +  <p><a name="4.6"><strong>4.6 How do I set up shared mailboxes?</strong></a></p>
  1.1972 +
  1.1973 +  <dl>
  1.1974 +    <dd>
  1.1975 +      At the simplest level, a shared mailbox is one which has UNIX file and
  1.1976 +      directory protections which permit multiple users to access it. What
  1.1977 +      this means is that your existing skills and tools to create and manage
  1.1978 +      shared files on your UNIX system apply to shared mailboxes; e.g.
  1.1979 +      <pre>
  1.1980 + chmod 666 mailbox
  1.1981 +</pre>
  1.1982 +
  1.1983 +      <p>You may want to consider the use of a mailbox format which permits
  1.1984 +      multiple simultaneous read/write sessions, such as the mbx format. The
  1.1985 +      traditional UNIX format only allows one read/write session to a
  1.1986 +      mailbox at a time.</p>
  1.1987 +
  1.1988 +      <p>An additional convenience item are three system directories, which
  1.1989 +      can be set up for shared namespaces. These are: #ftp, #shared, and
  1.1990 +      #public, and are defined by creating the associated UNIX users and home
  1.1991 +      directories as described below.</p>
  1.1992 +
  1.1993 +      <p>#ftp/ refers to the anonymous ftp filesystem exported by the ftp
  1.1994 +      server, and is equivalent to the home directory for UNIX user "ftp".
  1.1995 +      For example, #ftp/foo/bar refers to the file /foo/bar in the anonymous
  1.1996 +      FTP filesystem, or ~ftp/foo/bar for normal users. Anonymous FTP files
  1.1997 +      are available to anonymous IMAP logins. By default, newly-created files
  1.1998 +      in #ftp/ are protected 644.</p>
  1.1999 +
  1.2000 +      <p>#public/ refers to an IMAP toolkit convention called "public" files,
  1.2001 +      and is equivalent to the home directory for UNIX user "imappublic". For
  1.2002 +      example, #public/foo/bar refers to the file ~imappublic/foo/bar. Public
  1.2003 +      files are available to anonymous IMAP logins. By default, newly-created
  1.2004 +      files in #public are created with protection 0666.</p>
  1.2005 +
  1.2006 +      <p>#shared/ refers to an IMAP toolkit convention called "shared" files,
  1.2007 +      and is equivalent to the home directory for UNIX user "imapshared". For
  1.2008 +      example, #shared/foo/bar refers to the file ~imapshared/foo/bar. Shared
  1.2009 +      files are <em>not</em> available to anonymous IMAP logins. By default,
  1.2010 +      newly-created files in #shared are created with protection 0660.</p>
  1.2011 +    </dd>
  1.2012 +  </dl>
  1.2013 +
  1.2014 +  <p><a href="#top">Back to top</a></p>
  1.2015 +  <hr>
  1.2016 +
  1.2017 +  <p><a name="4.7"><strong>4.7 How can I make the server syslogs go to someplace
  1.2018 +     other than the mail syslog?</strong></a></p>
  1.2019 +
  1.2020 +  <dl>
  1.2021 +    <dd>
  1.2022 +      The openlog() call that sets the syslog facility is in
  1.2023 +      <strong>src/osdep/unix/env_unix.c</strong> in routine
  1.2024 +      <strong>server_init()</strong>. You need to edit this file to change
  1.2025 +      the syslog facility from LOG_MAIL to the facility you want, then
  1.2026 +      rebuild. You also need to set up your /etc/syslog.conf properly.
  1.2027 +
  1.2028 +      <p>Refer to the man pages for syslog and syslogd for more information
  1.2029 +      on what the available syslog facilities are and how to configure
  1.2030 +      syslogs. If you still don't understand what to do, find a UNIX system
  1.2031 +      expert.</p>
  1.2032 +    </dd>
  1.2033 +  </dl>
  1.2034 +
  1.2035 +  <p><a href="#top">Back to top</a></p>
  1.2036 +  <hr>
  1.2037 +
  1.2038 +  <p><br></p>
  1.2039 +
  1.2040 +  <h2><a name="security">5. Security Questions</a></h2>
  1.2041 +  <hr>
  1.2042 +
  1.2043 +  <p><a name="5.1"><strong>5.1 I see that the IMAP server allows access to
  1.2044 +     arbitary files on the system, including /etc/passwd! How do I disable
  1.2045 +     this?</strong></a></p>
  1.2046 +
  1.2047 +  <dl>
  1.2048 +    <dd>
  1.2049 +      You should not worry about this if your IMAP users are allowed shell
  1.2050 +      access. The IMAP server does not permit any access that the user can
  1.2051 +      not have via the shell.
  1.2052 +
  1.2053 +      <p>If, and only if, you deny your IMAP users shell access, you may want
  1.2054 +      to consider one of three choices. Note that these choices reduce IMAP
  1.2055 +      functionality, and may have undesirable side effects. Each of these
  1.2056 +      choices involves an edit to file
  1.2057 +      <strong>src/osdep/unix/env_unix.c</strong></p>
  1.2058 +
  1.2059 +      <p>The first (and recommended) choice is to set
  1.2060 +      <strong>restrictBox</strong> as described in file CONFIG. This will
  1.2061 +      disable access to the filesystem root, to other users' home directory,
  1.2062 +      and to superior directory.</p>
  1.2063 +
  1.2064 +      <p>The second (and strongly NOT recommended) choice is to set
  1.2065 +      <strong>closedBox</strong> as described in file CONFIG. This puts each
  1.2066 +      IMAP session into a so-called "chroot jail", and thus setting this
  1.2067 +      option is <em>extremely</em> dangerous; it can make your system much
  1.2068 +      less secure and open to root compromise attacks. So do not use this
  1.2069 +      option unless you are <em>absolutely certain</em> that you understand
  1.2070 +      all the issues of a "chroot jail."</p>
  1.2071 +
  1.2072 +      <p>The third choice is to rewrite routine
  1.2073 +      <strong>mailboxfile()</strong> to implement whatever mapping from
  1.2074 +      mailbox name to filesystem name (and restrictions) that you wish. This
  1.2075 +      is the most general choice. As a guide, you can see at the start of
  1.2076 +      routine <strong>mailboxfile()</strong> what the
  1.2077 +      <strong>restrictBox</strong> choice does.</p>
  1.2078 +    </dd>
  1.2079 +  </dl>
  1.2080 +
  1.2081 +  <p><a href="#top">Back to top</a></p>
  1.2082 +  <hr>
  1.2083 +
  1.2084 +  <p><a name="5.2"><strong>5.2 I've heard that IMAP servers are insecure. Is this
  1.2085 +     true?</strong></a></p>
  1.2086 +
  1.2087 +  <dl>
  1.2088 +    <dd>
  1.2089 +      There are no known security problems in this version of the IMAP
  1.2090 +      toolkit, including the IMAP and POP servers. The IMAP and POP servers
  1.2091 +      limit what can be done while not logged in, and as part of the login
  1.2092 +      process discard all privileges except those of the user.
  1.2093 +
  1.2094 +      <p>As with other software packages, there have been buffer overflow
  1.2095 +      vulnerabilities in past versions. All known problems of this nature are
  1.2096 +      fixed in this version.</p>
  1.2097 +
  1.2098 +      <p>There is every reason to believe that the bad guys are engaged in an
  1.2099 +      ongoing effort to find vulnerabilities in the IMAP toolkit. We look for
  1.2100 +      such problems, and when one is found we fix it.</p>
  1.2101 +
  1.2102 +      <p>It's unfortunate that any vulnerabilities existed in past versions,
  1.2103 +      and we're doing my best to keep the IMAP toolkit free of
  1.2104 +      vulnerabilities. No new vulnerabilities have been discovered in quite a
  1.2105 +      while, but efforts will not be relaxed.</p>
  1.2106 +
  1.2107 +      <p>Beware of vendors who claim that their implementations can not have
  1.2108 +      vulnerabilities.</p>
  1.2109 +    </dd>
  1.2110 +  </dl>
  1.2111 +
  1.2112 +  <p><a href="#top">Back to top</a></p>
  1.2113 +  <hr>
  1.2114 +
  1.2115 +  <p><a name="5.3"><strong>5.3 How do I know that I have the most secure version
  1.2116 +     of the server?</strong></a></p>
  1.2117 +
  1.2118 +  <dl>
  1.2119 +    <dd>
  1.2120 +      The best way is to keep your server software up to date. The bad guys
  1.2121 +      are always looking for ways to crack software, and when they find one,
  1.2122 +      let all their friends know.
  1.2123 +
  1.2124 +      <p>Oldtimers used to refer to a concept of <em>software rot</em>: if
  1.2125 +      your software hasn't been updated in a while, it would "rot" -- tend to
  1.2126 +      acquire problems that it didn't have when it was new.</p>
  1.2127 +
  1.2128 +      <p>The latest release version of the IMAP toolkit is always available
  1.2129 +      at <a href=
  1.2130 +      "ftp://ftp.cac.washington.edu/mail/imap.tar.Z">ftp://ftp.cac.washington.edu/mail/imap.tar.Z</a></p>
  1.2131 +    </dd>
  1.2132 +  </dl>
  1.2133 +
  1.2134 +  <p><a href="#top">Back to top</a></p>
  1.2135 +  <hr>
  1.2136 +
  1.2137 +  <p><a name="5.4"><strong>5.4 I see all these strcpy() and sprintf() calls, those
  1.2138 +     are unsafe, aren't they?</strong></a></p>
  1.2139 +
  1.2140 +  <dl>
  1.2141 +    <dd>
  1.2142 +      Yes and no.
  1.2143 +
  1.2144 +      <p>It can be unsafe to do these calls if you do not know that the
  1.2145 +      string being written will fit in the buffer. However, they are
  1.2146 +      perfectly safe if you do know that.</p>
  1.2147 +
  1.2148 +      <p>Beware of programmers who advocate doing a brute-force change of all
  1.2149 +      instances of</p>
  1.2150 +      <pre>
  1.2151 + strcpy (s,t);
  1.2152 +</pre>to
  1.2153 +      <pre>
  1.2154 + strncpy (s,t,n)[n] = '\0';
  1.2155 +</pre>and similar measures in the name of "fixing all possible buffer
  1.2156 +overflows."
  1.2157 +
  1.2158 +      <p>There are examples in which a security bug was introduced because of
  1.2159 +      this type of "fix", due to the programmer using the wrong value for n.
  1.2160 +      In one case, the programmer thought that n was larger than it actually
  1.2161 +      was, causing a NUL to be written out of the buffer; in another, n was
  1.2162 +      too small, and a security credential was truncated.</p>
  1.2163 +
  1.2164 +      <p>What is particularly ironic was that in both cases, the original
  1.2165 +      strcpy() was safe, because the size of the source string was known to
  1.2166 +      be safe.</p>
  1.2167 +
  1.2168 +      <p>With all this in mind, the software has been inspected, and it is
  1.2169 +      believed that all places where buffer overflows can happen have been
  1.2170 +      fixed. The strcpy()s that are still are in the code occur after a size
  1.2171 +      check was done in some other way.</p>
  1.2172 +
  1.2173 +      <p>Note that the common C idiom of</p>
  1.2174 +      <pre>
  1.2175 + *s++ = c;
  1.2176 +</pre>is just as vulnerable to buffer overflows. You can't cure buffer
  1.2177 +overflows by outlawing certain functions, nor is it desirable to do so;
  1.2178 +sometimes operations like strcpy() translate into fast machine instructions
  1.2179 +for better performance.
  1.2180 +
  1.2181 +      <p>Nothing replaces careful study of code. That's how the bad guys find
  1.2182 +      bugs. Security is not accomplished by means of brute-force
  1.2183 +      shortcuts.</p>
  1.2184 +    </dd>
  1.2185 +  </dl>
  1.2186 +
  1.2187 +  <p><a href="#top">Back to top</a></p>
  1.2188 +  <hr>
  1.2189 +
  1.2190 +  <p><a name="5.5"><strong>5.5 Those /tmp lock files are protected 666, is that
  1.2191 +     really right?</strong></a></p>
  1.2192 +
  1.2193 +  <dl>
  1.2194 +    <dd>
  1.2195 +      Yes. Shared mailboxes won't work otherwise. Also, you get into
  1.2196 +      accidental denial of service problems with old lock files left lying
  1.2197 +      around; this happens fairly frequently.
  1.2198 +
  1.2199 +      <p>The deliberate mischief that can be caused by fiddling with the lock
  1.2200 +      files is small-scale; harassment level at most. There are many -- and
  1.2201 +      much more effective -- other ways of harassing another user on UNIX.
  1.2202 +      It's usually not difficult to determine the culprit.</p>
  1.2203 +
  1.2204 +      <p>Before worrying about deliberate mischief, worry first about things
  1.2205 +      happening by accident!</p>
  1.2206 +    </dd>
  1.2207 +  </dl>
  1.2208 +
  1.2209 +  <p><a href="#top">Back to top</a></p>
  1.2210 +  <hr>
  1.2211 +
  1.2212 +  <p><br></p>
  1.2213 +
  1.2214 +  <h2><a name="strange">6. <em>Why Did You Do This Strange Thing?</em>
  1.2215 +     Questions</a></h2>
  1.2216 +  <hr>
  1.2217 +
  1.2218 +  <p><a name="6.1"><strong>6.1 Why don't you use GNU autoconfig / automake /
  1.2219 +     autoblurdybloop?</strong></a></p>
  1.2220 +
  1.2221 +  <dl>
  1.2222 +    <dd>
  1.2223 +      Autoconfig et al are not available on all the platforms where the IMAP
  1.2224 +      toolkit is supported; and do not work correctly on some of the
  1.2225 +      platforms where they do exist. Furthermore, these programs add another
  1.2226 +      layer of complexity to an already complex process.
  1.2227 +
  1.2228 +      <p>Coaxing software that uses autoconfig to build properly on platforms
  1.2229 +      which were not specifically considered by that software wastes an
  1.2230 +      inordinate amount of time. When (not if) autoconfig fails to do the
  1.2231 +      right thing, the result is an inpenetrable morass to untangle in order
  1.2232 +      to find the problem and fix it.</p>
  1.2233 +
  1.2234 +      <p>The concept behind autoconfig is good, but the execution is flawed.
  1.2235 +      It rarely does the right thing on a platform that wasn't specifically
  1.2236 +      considered. Human life is too short to debug autoconfig problems,
  1.2237 +      especially since the current mechanism is so much easier.</p>
  1.2238 +    </dd>
  1.2239 +  </dl>
  1.2240 +
  1.2241 +  <p><a href="#top">Back to top</a></p>
  1.2242 +  <hr>
  1.2243 +
  1.2244 +  <p><a name="6.2"><strong>6.2 Why do you insist upon a build with -g? Doesn't it
  1.2245 +     waste disk and memory space?</strong></a></p>
  1.2246 +
  1.2247 +  <dl>
  1.2248 +    <dd>
  1.2249 +      From time to time a submitted port has snuck in without -g. This has
  1.2250 +      <em>always</em> ended up causing problems. There are only two valid
  1.2251 +      excuses for not using -g in a port:
  1.2252 +
  1.2253 +      <ul>
  1.2254 +        <li>The compiler does not support -g</li>
  1.2255 +
  1.2256 +        <li>An alternate form of -g is needed with optimization, e.g.
  1.2257 +        -g3.</li>
  1.2258 +      </ul>
  1.2259 +
  1.2260 +      <p>There will be no new ports added without -g (or a suitable
  1.2261 +      alternative) being set.</p>
  1.2262 +
  1.2263 +      <p>-g has not been arbitrarily added to the ports which do not
  1.2264 +      currently have it because we don't know if doing so would break the
  1.2265 +      build. However, any support issues with one of those port <em>will</em>
  1.2266 +      lead to the correct -g setting being determined and permanently
  1.2267 +      added.</p>
  1.2268 +
  1.2269 +      <p>Processors are fast enough (and disk space is cheap enough) that -g
  1.2270 +      should be automatic in all compilers with no way of turning it off, and
  1.2271 +      /bin/strip should be a symlink to /bin/true. Human life is too short to
  1.2272 +      deal with binaries built without -g. Such binaries should be a bad
  1.2273 +      memory of the days of KIPS processors and disks that costs several
  1.2274 +      dollars per kilobyte.</p>
  1.2275 +    </dd>
  1.2276 +  </dl>
  1.2277 +
  1.2278 +  <p><a href="#top">Back to top</a></p>
  1.2279 +  <hr>
  1.2280 +
  1.2281 +  <p><a name="6.3"><strong>6.3 Why don't you make c-client a shared
  1.2282 +     library?</strong></a></p>
  1.2283 +
  1.2284 +  <dl>
  1.2285 +    <dd>
  1.2286 +      All too often, shared libraries create far more problems than they
  1.2287 +      solve.
  1.2288 +
  1.2289 +      <p>Remember that you only gain the benefit of a shared library when
  1.2290 +      there are multiple applications which use that shared library. Even
  1.2291 +      without shared libraries, on most modern operating systems (and many
  1.2292 +      ancient ones too!) applications will share their text segments between
  1.2293 +      across multiple processes running the same application. This means that
  1.2294 +      if your system only runs one application (e.g. imapd) that uses the
  1.2295 +      c-client library, then you gain no benefit from making c-client a
  1.2296 +      shared library even if it has 100 imapd processes. You will, however
  1.2297 +      suffer added complexity.</p>
  1.2298 +
  1.2299 +      <p>If you have a server system that just runs imapd and ipop3d, then
  1.2300 +      making c-client a shared library will save just one copy of c-client no
  1.2301 +      matter how many IMAP/POP3 processes are running.</p>
  1.2302 +
  1.2303 +      <p>The problem with shared libraries is that you have to keep around a
  1.2304 +      copy of the library every time something changes in the library that
  1.2305 +      would affect the interface the library presents to the application. So,
  1.2306 +      you end up having many copies of the same shared library.</p>
  1.2307 +
  1.2308 +      <p>If you don't keep multiple copies of the shared library, then one of
  1.2309 +      two things happens. If there was proper versioning, then you'll get a
  1.2310 +      message such as "cannot open shared object file" or "minor versions
  1.2311 +      don't match" and the application won't run. Otherwise, the application
  1.2312 +      will run, but will fail in mysterious ways.</p>
  1.2313 +
  1.2314 +      <p>Several sites and third-party distributors have modified the
  1.2315 +      c-client makefile in order to make c-client be a shared library.
  1.2316 +      <em>When</em> (not <em>if</em>) a c-client based application fails in
  1.2317 +      mysterious ways because of a library compatibility problem, the result
  1.2318 +      is a bug report. A lot of time and effort ends up getting wasted
  1.2319 +      investigating such bug reports.</p>
  1.2320 +
  1.2321 +      <p>Memory is so cheap these days that it's not worth it. Human life is
  1.2322 +      too short to deal with shared library compatibility problems.</p>
  1.2323 +    </dd>
  1.2324 +  </dl>
  1.2325 +
  1.2326 +  <p><a href="#top">Back to top</a></p>
  1.2327 +  <hr>
  1.2328 +
  1.2329 +  <p><a name="6.4"><strong>6.4 Why don't you use iconv() for internationalization
  1.2330 +     support?</strong></a></p>
  1.2331 +
  1.2332 +  <dl>
  1.2333 +    <dd>iconv() is not ubiquitous enough.</dd>
  1.2334 +  </dl>
  1.2335 +
  1.2336 +  <p><a href="#top">Back to top</a></p>
  1.2337 +  <hr>
  1.2338 +
  1.2339 +  <p><a name="6.5"><strong>6.5 Why is the IMAP server connected to the home
  1.2340 +     directory by default?</strong></a></p>
  1.2341 +
  1.2342 +  <dl>
  1.2343 +    <dd>
  1.2344 +      The IMAP server has no way of knowing what you might call "mail" as
  1.2345 +      opposed to "some other file"; in fact, you can use IMAP to access any
  1.2346 +      file.
  1.2347 +
  1.2348 +      <p>The IMAP server also doesn't know whether your preferred
  1.2349 +      subdirectory for mailbox files is "mail/", ".mail/", "Mail/",
  1.2350 +      "Mailboxes/", or any of a zillion other possibilities. If one such name
  1.2351 +      were chosen, it would undoubtably anger the partisans of all the other
  1.2352 +      names.</p>
  1.2353 +
  1.2354 +      <p>It is possible to modify the software so that the default connected
  1.2355 +      directory is someplace else. Please read the file CONFIG for discussion
  1.2356 +      of this and other issues.</p>
  1.2357 +    </dd>
  1.2358 +  </dl>
  1.2359 +
  1.2360 +  <p><a href="#top">Back to top</a></p>
  1.2361 +  <hr>
  1.2362 +
  1.2363 +  <p><a name="6.6"><strong>6.6 I have a Windows system. Why isn't the server plug
  1.2364 +     and play for me?</strong></a></p>
  1.2365 +
  1.2366 +  <dl>
  1.2367 +    <dd>
  1.2368 +      There is no standard for how mail is stored on Windows; nor a single
  1.2369 +      standard SMTP server. The closest to either would be the SMTP server in
  1.2370 +      Microsoft's IIS.
  1.2371 +
  1.2372 +      <p>So there's no default by which to make assumptions. As the software
  1.2373 +      is set up, it assumes that the each user has an Windows login account
  1.2374 +      and private home directory, and that mail is stored on that home
  1.2375 +      directory as files in one of the popular UNIX formats. It also assumes
  1.2376 +      that there is some tool equivalent to inetd on UNIX that does the
  1.2377 +      TCP/IP listening and server startup.</p>
  1.2378 +
  1.2379 +      <p>Basically, unless you're an email software hacker, you probably want
  1.2380 +      to look elsewhere if you want IMAP/POP servers for Windows.</p>
  1.2381 +    </dd>
  1.2382 +  </dl>
  1.2383 +
  1.2384 +  <p><a href="#top">Back to top</a></p>
  1.2385 +  <hr>
  1.2386 +
  1.2387 +  <p><a name="6.7"><strong>6.7 I looked at the UNIX SSL code and saw that you have
  1.2388 +     the SSL data payload size set to 8192 bytes. SSL allows 16K; why aren't
  1.2389 +     you using the full size?</strong></a></p>
  1.2390 +
  1.2391 +  <dl>
  1.2392 +    <dd>
  1.2393 +      This is to avoid an interoperability problem with:
  1.2394 +
  1.2395 +      <ul>
  1.2396 +        <li>PC IMAP clients that use Microsoft's SChannel.DLL (SSPI) for SSL
  1.2397 +        support</li>
  1.2398 +
  1.2399 +        <li>Microsoft Exchange server (which also uses SChannel).</li>
  1.2400 +      </ul>
  1.2401 +
  1.2402 +      <p>SChannel has a bug that makes it think that the maximum SSL data
  1.2403 +      payload size is 16379 bytes -- 5 bytes too small. Thus, c-client has to
  1.2404 +      make sure that it never transmits full sized SSL packets.</p>
  1.2405 +
  1.2406 +      <p>The reason for using 8K (as opposed to, say, 16379 bytes, or 15K,
  1.2407 +      or...) is that it corresponds with the TCP buffer size that the
  1.2408 +      software uses elsewhere for input; there's a slight performance benefit
  1.2409 +      to having the two sizes correspond or at least be a multiple of each
  1.2410 +      other. Also, it keeps the size as a power of two, which might be
  1.2411 +      significant on some platforms.</p>
  1.2412 +
  1.2413 +      <p>There wasn't a significant difference that we could measure between
  1.2414 +      8K and 15K.</p>
  1.2415 +
  1.2416 +      <p>Microsoft has developed a hotfix for this bug. Look up MSKB article
  1.2417 +      number 300562. Contrary to the article text which implies that this is
  1.2418 +      a Pine issue, this bug also affects Microsoft Exchange server with
  1.2419 +      <em>any</em> client that transmits full-sized SSL payloads.</p>
  1.2420 +    </dd>
  1.2421 +  </dl>
  1.2422 +
  1.2423 +  <p><a href="#top">Back to top</a></p>
  1.2424 +  <hr>
  1.2425 +
  1.2426 +  <p><a name="6.8"><strong>6.8 Why is an mh format INBOX called #mhinbox instead
  1.2427 +     of just INBOX?</strong></a></p>
  1.2428 +
  1.2429 +  <dl>
  1.2430 +    <dd>
  1.2431 +      It's a long story. In brief, the mh format driver is less functional
  1.2432 +      than any of the other drivers. It turned out that there were some users
  1.2433 +      (including high-level administrators) who tried mh years ago and no
  1.2434 +      longer use it, but still had an mh profile left behind.
  1.2435 +
  1.2436 +      <p>When the mh driver used INBOX, it would see the mh profile, and
  1.2437 +      proceed to move the user's INBOX into the mh format INBOX. This caused
  1.2438 +      considerable confusion as some things stopped working.</p>
  1.2439 +    </dd>
  1.2440 +  </dl>
  1.2441 +
  1.2442 +  <p><a href="#top">Back to top</a></p>
  1.2443 +  <hr>
  1.2444 +
  1.2445 +  <p><a name="6.9"><strong>6.9 Why don't you support the maildir
  1.2446 +     format?</strong></a></p>
  1.2447 +
  1.2448 +  <dl>
  1.2449 +    <dd>
  1.2450 +      It is technically difficult to support maildir in IMAP while
  1.2451 +      maintaining acceptable performance, robustness, following the
  1.2452 +      requirements of the IMAP protocol specification, and following the
  1.2453 +      requirements of maildir.
  1.2454 +
  1.2455 +      <p>No one has succeeded in accomplishing all four together. The various
  1.2456 +      maildir drivers offered as patches all have these problems. The problem
  1.2457 +      is exacerbated because this implementation supports multiple formats;
  1.2458 +      consequently this implementation can't make any performance shortcuts
  1.2459 +      by assuming that all the world is maildir.</p>
  1.2460 +
  1.2461 +      <p>We can't do a better job than the maildir fan community has done
  1.2462 +      with their maildir drivers. Similarly, if the maildir fan community
  1.2463 +      provides the maildir driver, they take on the responsibility for
  1.2464 +      answering maildir-specific support questions. This is as it should be,
  1.2465 +      and that is why maildir support is left to the maildir fan
  1.2466 +      community.</p>
  1.2467 +    </dd>
  1.2468 +  </dl>
  1.2469 +
  1.2470 +  <p><a href="#top">Back to top</a></p>
  1.2471 +  <hr>
  1.2472 +
  1.2473 +  <p><a name="6.10"><strong>6.10 Why don't you support the Cyrus
  1.2474 +     format?</strong></a></p>
  1.2475 +
  1.2476 +  <dl>
  1.2477 +    <dd>
  1.2478 +      There's no point to doing so. An implementation which supports multiple
  1.2479 +      formats will never do as well as one which is optimized to support one
  1.2480 +      single format.
  1.2481 +
  1.2482 +      <p>If you want to use Cyrus mailbox format, you should use the Cyrus
  1.2483 +      server, which is the native implementation of that format and is
  1.2484 +      specifically optimized for that format. That's also why Cyrus doesn't
  1.2485 +      implement any other format.</p>
  1.2486 +    </dd>
  1.2487 +  </dl>
  1.2488 +
  1.2489 +  <p><a href="#top">Back to top</a></p>
  1.2490 +  <hr>
  1.2491 +
  1.2492 +  <p><a name="6.11"><strong>6.11 Why is it creating extra forks on my SVR4
  1.2493 +     system?</strong></a></p>
  1.2494 +
  1.2495 +  <dl>
  1.2496 +    <dd>
  1.2497 +      This is because your system only has fcntl() style locking and not
  1.2498 +      flock() style locking. fcntl() locking has a design flaw that causes a
  1.2499 +      close() to release any locks made by that process on the file opened on
  1.2500 +      that file descriptor, even if the lock was made on a different file
  1.2501 +      descriptor.
  1.2502 +
  1.2503 +      <p>This design flaw causes unexpected loss of lock, and consequent
  1.2504 +      mailbox corruption. The workaround is to do certain "dangerous
  1.2505 +      operations" in another fork, thus avoiding doing a close() in the
  1.2506 +      vulnerable fork.</p>
  1.2507 +
  1.2508 +      <p>The best way to solve this problem is to upgrade your SVR4 (Solaris,
  1.2509 +      AIX, HP-UX, SGI) or OSF/1 system to a more advanced operating system,
  1.2510 +      such as Linux or BSD. These more advanced operating systems have
  1.2511 +      fcntl() locking for compatibility with SVR4, but also have flock()
  1.2512 +      locking.</p>
  1.2513 +
  1.2514 +      <p>Beware of certain SVR4 systems, such as AIX, which have an "flock()"
  1.2515 +      function in their C library that is just a jacket that does an fcntl()
  1.2516 +      lock. This is not a true flock(), and has the same design flaw as
  1.2517 +      fcntl().</p>
  1.2518 +    </dd>
  1.2519 +  </dl>
  1.2520 +
  1.2521 +  <p><a href="#top">Back to top</a></p>
  1.2522 +  <hr>
  1.2523 +
  1.2524 +  <p><a name="6.12"><strong>6.12 Why are you so fussy about the date/time format in
  1.2525 +     the internal <code>"From&nbsp;"</code> line in traditional UNIX mailbox
  1.2526 +     files? My other mail program just considers every line that starts with
  1.2527 +     <code>"From&nbsp;"</code> to be the start of the message.</strong></a></p>
  1.2528 +
  1.2529 +  <dl>
  1.2530 +    <dd>
  1.2531 +      You just answered your own question. If any line that starts with
  1.2532 +      <code>"From&nbsp;"</code> is treated as the start of a message, then
  1.2533 +      every message text line which starts with <code>"From&nbsp;"</code> has
  1.2534 +      to be quoted (typically by prefixing a "&gt;" character). People
  1.2535 +      complain about this -- "why did a &gt; get stuck in my message?"
  1.2536 +
  1.2537 +      <p>So, good mail reading software only considers a line to be a
  1.2538 +      <code>"From&nbsp;"</code> line if it follows the actual specification
  1.2539 +      for a "From&nbsp;" line. This means, among other things, that the day of
  1.2540 +      week is fixed-format: <code>"May&nbsp;14"</code>, but
  1.2541 +      <code>"May&nbsp;&nbsp;7"</code> (note the extra space) as opposed to
  1.2542 +      <code>"May&nbsp;7"</code>. ctime() format for the date is the most
  1.2543 +      common, although POSIX also allows a numeric timezone after the
  1.2544 +      year. For compatibility with ancient software, the seconds are optional,
  1.2545 +      the timezone may appear before the year, the old 3-letter timezones are
  1.2546 +      also permitted, and "remote from xxx" may appear after the whole
  1.2547 +      thing.</p>
  1.2548 +
  1.2549 +      <p>Unfortunately, some software written by novices use other formats.
  1.2550 +      The most common error is to have a variable-width day of month, perhaps
  1.2551 +      in the erroneous belief that RFC 2822 (or RFC 822) defines the format of
  1.2552 +      the date/time in the <code>"From&nbsp;"</code> line (it doesn't; no RFC
  1.2553 +      describes internal formats). I've seen a few other goofs, such as a
  1.2554 +      single-digit second, but these are less common.</p>
  1.2555 +
  1.2556 +      <p>If you are writing your own software that writes mailbox files, and
  1.2557 +      you really aren't all that savvy with all the ins and outs and ancient
  1.2558 +      history, you should seriously consider using the c-client library (e.g.
  1.2559 +      routine mail_append()) instead of doing the file writes yourself. If
  1.2560 +      you must do it yourself, use ctime(), as in:</p>
  1.2561 +      <pre>
  1.2562 + fprintf (mbx,"From %s@%h %s",user,host,ctime (time (0)));
  1.2563 +</pre>rather than try to figure out a good format yourself. ctime() is the
  1.2564 +most traditional format and nobody will flame you for using it.
  1.2565 +    </dd>
  1.2566 +  </dl>
  1.2567 +
  1.2568 +  <p><a href="#top">Back to top</a></p>
  1.2569 +  <hr>
  1.2570 +
  1.2571 +  <p><a name="6.13"><strong>6.13 Why is traditional UNIX format the default
  1.2572 +     format?</strong></a></p>
  1.2573 +
  1.2574 +  <dl>
  1.2575 +    <dd>Compatibility with the past 30 or so years of UNIX history. This
  1.2576 +    server is the only one that completely interoperates with legacy UNIX
  1.2577 +    mail tools.</dd>
  1.2578 +  </dl>
  1.2579 +
  1.2580 +  <p><a href="#top">Back to top</a></p>
  1.2581 +  <hr>
  1.2582 +
  1.2583 +  <p><a name="6.14"><strong>6.14 Why do you write this "DON'T DELETE THIS MESSAGE
  1.2584 +     -- FOLDER INTERNAL DATA" message at the start of traditional UNIX and
  1.2585 +     MMDF format mailboxes?</strong></a></p>
  1.2586 +
  1.2587 +  <dl>
  1.2588 +    <dd>
  1.2589 +      This pseudo-message serves two purposes.
  1.2590 +
  1.2591 +      <p>First, it establishes the mailbox format even when the mailbox has
  1.2592 +      no messages. Otherwise, a mailbox with no messages is a zero-byte file,
  1.2593 +      which could be one of several formats.</p>
  1.2594 +
  1.2595 +      <p>Second, it holds mailbox metadata used by IMAP: the UID validity,
  1.2596 +      the last assigned UID, and mailbox keywords. Without this metadata,
  1.2597 +      which must be preserved even when the mailbox has no messages, the
  1.2598 +      traditional UNIX format wouldn't be able to support the full
  1.2599 +      capabilities of IMAP.</p>
  1.2600 +    </dd>
  1.2601 +  </dl>
  1.2602 +
  1.2603 +  <p><a href="#top">Back to top</a></p>
  1.2604 +  <hr>
  1.2605 +
  1.2606 +  <p><a name="6.15"><strong>6.15 Why don't you stash the mailbox metadata in the
  1.2607 +     first real message of the mailbox instead of writing this fake FOLDER
  1.2608 +     INTERNAL DATA message?</strong></a></p>
  1.2609 +
  1.2610 +  <dl>
  1.2611 +    <dd>
  1.2612 +      In fact, that is what is done if the mailbox is non-empty and does not
  1.2613 +      already have a FOLDER INTERNAL DATA message.
  1.2614 +
  1.2615 +      <p>One problem with doing that is that if some external program removes
  1.2616 +      the first message, the metadata is lost and must be recreated, thus
  1.2617 +      losing any prior UID or keyword list status that IMAP clients may
  1.2618 +      depend upon.</p>
  1.2619 +
  1.2620 +      <p>Another problem is that this doesn't help if the last message is
  1.2621 +      deleted. This will result in an empty mailbox, and the necessity to
  1.2622 +      create a FOLDER INTERNAL DATA message.</p>
  1.2623 +    </dd>
  1.2624 +  </dl>
  1.2625 +
  1.2626 +  <p><a href="#top">Back to top</a></p>
  1.2627 +  <hr>
  1.2628 +
  1.2629 +  <p><a name="6.16"><strong>6.16 Why aren't "dual-use" mailboxes the
  1.2630 +     default?</strong></a></p>
  1.2631 +
  1.2632 +  <dl>
  1.2633 +    <dd>Compatibility with the past 30 or so years of UNIX history, not to
  1.2634 +    mention compatibility with user expectations when using shell tools.</dd>
  1.2635 +  </dl>
  1.2636 +
  1.2637 +  <p><a href="#top">Back to top</a></p>
  1.2638 +  <hr>
  1.2639 +
  1.2640 +  <p><a name="6.17"><strong>6.17 Why do you use ucbcc to build on
  1.2641 +     Solaris?</strong></a></p>
  1.2642 +
  1.2643 +  <dl>
  1.2644 +    <dd>
  1.2645 +      It is a long, long story about why cc is set to ucbcc. You need to
  1.2646 +      invoke the C compiler so that it links with the SVR4 libraries and not
  1.2647 +      the BSD libraries, otherwise readdir() will return the wrong
  1.2648 +      information.
  1.2649 +
  1.2650 +      <p>Of all the names in the most common path, ucbcc is the only name to
  1.2651 +      be found (on /usr/ccs/bin) that points to a suitable compiler. cc is
  1.2652 +      likely to be /usr/ucb/cc which is absolutely not the compiler that you
  1.2653 +      want. The real SVR4 cc is probably something like /opt/SUNWspro/bin/cc
  1.2654 +      which is rarely in anyone's path by default.</p>
  1.2655 +
  1.2656 +      <p>ucbcc is probably a link to acc, e.g. /opt/SUNWspro/SC4.0/bin/acc,
  1.2657 +      and is the UCB C compiler using the SVR4 libraries.</p>
  1.2658 +
  1.2659 +      <p>If ucbcc isn't on your system, then punt on the SUN C compiler and
  1.2660 +      use gcc instead (the gso port instead of the sol port).</p>
  1.2661 +
  1.2662 +      <p>If, in spite of all the above warnings, you choose to change "ucbcc"
  1.2663 +      to "cc", you will probably find that the -O2 needs to be changed to -O.
  1.2664 +      If you don't get any error messages with -O2, that's a pretty good
  1.2665 +      indicator that you goofed and are running the compiler that will link
  1.2666 +      with the BSD libraries.</p>
  1.2667 +
  1.2668 +      <p>To recap:</p>
  1.2669 +
  1.2670 +      <ul>
  1.2671 +        <li>The sol port is designed to be built using the UCB compiler using
  1.2672 +        the SVR4 libraries. This compiler is "ucbcc", which is lunk to acc.
  1.2673 +        You use -O2 as one of the CFLAGS.</li>
  1.2674 +
  1.2675 +        <li>If you build the sol port with the UCB compiler using the BSD
  1.2676 +        libraries, you will get no error messages but you will get bad
  1.2677 +        binaries (the most obvious symptom is dropping the first two
  1.2678 +        characters return filenames from the imapd LIST command. This
  1.2679 +        compiler also uses -O2, and is very often what the user gets from
  1.2680 +        "cc". <strong>BEWARE</strong></li>
  1.2681 +
  1.2682 +        <li>If you build the sol port with the real SVR4 compiler, which is
  1.2683 +        often hidden away or unavailable on many systems, then you will get
  1.2684 +        errors from -O2 and you need to change that to -O. But you will get a
  1.2685 +        good binary. However, you should try it with -O2 first, to make sure
  1.2686 +        that you got this compiler and not the UCB compiler using BSD
  1.2687 +        libraries.</li>
  1.2688 +      </ul>
  1.2689 +    </dd>
  1.2690 +  </dl>
  1.2691 +
  1.2692 +  <p><a href="#top">Back to top</a></p>
  1.2693 +  <hr>
  1.2694 +
  1.2695 +  <p><a name="6.18"><strong>6.18 Why should I care about some old system with BSD
  1.2696 +     libraries? cc is the right thing on my Solaris system!</strong></a></p>
  1.2697 +
  1.2698 +  <dl>
  1.2699 +    <dd>
  1.2700 +      Because there still are sites that use such systems. On those systems,
  1.2701 +      the assumption that "cc" does the right thing will lead to corrupt
  1.2702 +      binaries with no error message or other warning that anything is amiss.
  1.2703 +
  1.2704 +      <p>Too many sites have fallen victim to this problem.</p>
  1.2705 +    </dd>
  1.2706 +  </dl>
  1.2707 +
  1.2708 +  <p><a href="#top">Back to top</a></p>
  1.2709 +  <hr>
  1.2710 +
  1.2711 +  <p><a name="6.19"><strong>6.19 Why do you insist upon writing .lock files in the
  1.2712 +     spool directory?</strong></a></p>
  1.2713 +
  1.2714 +  <dl>
  1.2715 +    <dd>Compatibility with the past 30 years of UNIX software which deals
  1.2716 +    with the spool directory, especially software which delivers mail.
  1.2717 +    Otherwise, it is possible to lose mail.</dd>
  1.2718 +  </dl>
  1.2719 +
  1.2720 +  <p><a href="#top">Back to top</a></p>
  1.2721 +  <hr>
  1.2722 +
  1.2723 +  <p><a name="6.20"><strong>6.20 Why should I care about compatibility with the
  1.2724 +     past?</strong></a></p>
  1.2725 +
  1.2726 +  <dl>
  1.2727 +    <dd>This is one of those questions in which the answer never convinces
  1.2728 +    those who ask it. Somehow, everybody who ever asks this question ends up
  1.2729 +    answering it for themselves as they get older, with the very answer that
  1.2730 +    they rejected years earlier.</dd>
  1.2731 +  </dl>
  1.2732 +
  1.2733 +  <p><a href="#top">Back to top</a></p>
  1.2734 +  <hr>
  1.2735 +
  1.2736 +  <p><br></p>
  1.2737 +
  1.2738 +  <h2><a name="problems">7. Problems and Annoyances</a></h2>
  1.2739 +  <hr>
  1.2740 +
  1.2741 +  <p><a name="7.1"><strong>7.1 Help! My INBOX is empty! What happened to my
  1.2742 +     messages?</strong></a></p>
  1.2743 +
  1.2744 +  <dl>
  1.2745 +    <dd>
  1.2746 +      If you are seeing "0 messages" when you open INBOX and you know you
  1.2747 +      have messages there (and perhaps have looked at your mail spool file
  1.2748 +      and see that messages are there), then probably there is something
  1.2749 +      wrong with the very first line of your mail spool file. Make sure that
  1.2750 +      the first five bytes of the file are "From ", followed by an email
  1.2751 +      address and a date/time in ctime() format, e.g.:
  1.2752 +      <pre>
  1.2753 + From fred@foo.bar Mon May  7 20:54:30 2001
  1.2754 +</pre>
  1.2755 +    </dd>
  1.2756 +  </dl>
  1.2757 +
  1.2758 +  <p><a href="#top">Back to top</a></p>
  1.2759 +  <hr>
  1.2760 +
  1.2761 +  <p><a name="7.2"><strong>7.2 Help! All my messages in a non-INBOX mailbox have
  1.2762 +     been concatenated into one message which claims to be from me and has a
  1.2763 +     subject of the file name of the mailbox! What's going
  1.2764 +     on?</strong></a></p>
  1.2765 +
  1.2766 +  <dl>
  1.2767 +    <dd>
  1.2768 +      Something wrong with the very first line of the mailbox. Make sure that
  1.2769 +      the first five bytes of the file are "From ", followed by an email
  1.2770 +      address and a date/time in ctime() format, e.g.:
  1.2771 +      <pre>
  1.2772 + From fred@foo.bar Mon May  7 20:54:30 2001
  1.2773 +</pre>
  1.2774 +    </dd>
  1.2775 +  </dl>
  1.2776 +
  1.2777 +  <p><a href="#top">Back to top</a></p>
  1.2778 +  <hr>
  1.2779 +
  1.2780 +  <p><a name="7.3"><strong>7.3 Why do I get the message:</strong> <tt>CREATE
  1.2781 +     failed: Can't create mailbox node xxxxxxxxx: File exists</tt>
  1.2782 +     <strong>and how do I fix it?</strong></a></p>
  1.2783 +
  1.2784 +  <dl>
  1.2785 +    <dd>See the answer to the <a href="#1.8">Are hierarchical mailboxes
  1.2786 +    supported?</a> question.</dd>
  1.2787 +  </dl>
  1.2788 +
  1.2789 +  <p><a href="#top">Back to top</a></p>
  1.2790 +  <hr>
  1.2791 +
  1.2792 +  <p><a name="7.4"><strong>7.4 Why can't I log in to the server? The user name and
  1.2793 +     password are right!</strong></a></p>
  1.2794 +
  1.2795 +  <dl>
  1.2796 +    <dd>
  1.2797 +      There are a myriad number of possible answers to this question. The
  1.2798 +      only way to say for sure what is wrong is run the server under a
  1.2799 +      debugger such as gdb while root (yes, you must be root) with a
  1.2800 +      breakpoint at routines checkpw() and loginpw(), then single-step until
  1.2801 +      you see which test rejected you. The server isn't going to give any
  1.2802 +      error messages other than "login failed" in the name of not giving out
  1.2803 +      any unnecessary information to unauthorized individuals.
  1.2804 +
  1.2805 +      <p>Here are some of the more common reasons why login may fail:</p>
  1.2806 +
  1.2807 +      <ul>
  1.2808 +        <li>You didn't really give the correct user name and/or
  1.2809 +        password.</li>
  1.2810 +
  1.2811 +        <li>Your client doesn't send the LOGIN command correctly; for
  1.2812 +        example, IMAP2 clients won't send a password containing a "*"
  1.2813 +        correctly to an IMAP4 server.</li>
  1.2814 +
  1.2815 +        <li>If you have set up a CRAM-MD5 database, remember that the
  1.2816 +        password used is the one in the CRAM-MD5 database, and furthermore
  1.2817 +        that there must also be an entry in /etc/passwd (but the /etc/passwd
  1.2818 +        password is not used).</li>
  1.2819 +
  1.2820 +        <li>If you are using PAM, have you created a service file for the
  1.2821 +        server in /etc/pam.d?</li>
  1.2822 +
  1.2823 +        <li>If you are using shadow passwords, have you used an appropriate
  1.2824 +        port when building? In particular, note that "lnx" is for Linux
  1.2825 +        systems without shadow passwords; you probably want "slx" or "lnp"
  1.2826 +        instead.</li>
  1.2827 +
  1.2828 +        <li>If your system has account or password expirations, check to see
  1.2829 +        that the expiration date hasn't passed.</li>
  1.2830 +
  1.2831 +        <li>You can't log in as root or any other UID 0 user. This is for
  1.2832 +        your own safety, not to mention the fact that the servers use UID 0
  1.2833 +        as meaning "not logged in".</li>
  1.2834 +      </ul>
  1.2835 +    </dd>
  1.2836 +  </dl>
  1.2837 +
  1.2838 +  <p><a href="#top">Back to top</a></p>
  1.2839 +  <hr>
  1.2840 +
  1.2841 +  <p><a name="7.5"><strong>7.5 Help! My load average is soaring and I see hundreds
  1.2842 +     of POP and IMAP servers, many logged in as the same
  1.2843 +     user!</strong></a></p>
  1.2844 +
  1.2845 +  <dl>
  1.2846 +    <dd>
  1.2847 +      Certain inferior losing GUI mail reading programs have a "synchronize
  1.2848 +      all mailboxes at startup" (IMAP) or "check for new mail every second"
  1.2849 +      (POP) feature which causes a rapid and unchecked spawning of servers.
  1.2850 +
  1.2851 +      <p>This is not a problem in the server; the client is really asking for
  1.2852 +      all those server sessions. Unfortunately, there isn't much that the POP
  1.2853 +      and IMAP servers can do about it; they don't spawned themselves.</p>
  1.2854 +
  1.2855 +      <p>Some sites have added code to record the number of server sessions
  1.2856 +      spawned per user per hour, and disable login for a user who has
  1.2857 +      exceeded a predetermined rate. This doesn't stop the servers from being
  1.2858 +      spawned; it just means that a server session will commit suicide a bit
  1.2859 +      faster.</p>
  1.2860 +
  1.2861 +      <p>Another possibility is to detect excessive server spawning activity
  1.2862 +      at the level where the server is spawned, which would be inetd or
  1.2863 +      possibly tcpd. The problem here is that this is a hard time to
  1.2864 +      quantify. 50 sessions in a minute from a multi-user timesharing system
  1.2865 +      may be perfectly alright, whereas 10 sessions a minute from a PC may be
  1.2866 +      too much.</p>
  1.2867 +
  1.2868 +      <p>The real solution is to fix the client configuration, by disabling
  1.2869 +      those evil features. Also tell the vendors of those clients how you
  1.2870 +      feel about distributing denial-of-service attack tools in the guise of
  1.2871 +      mail reading programs.</p>
  1.2872 +    </dd>
  1.2873 +  </dl>
  1.2874 +
  1.2875 +  <p><a href="#top">Back to top</a></p>
  1.2876 +  <hr>
  1.2877 +
  1.2878 +  <p><a name="7.6"><strong>7.6 Why does mail disappear even though I set "keep
  1.2879 +     mail on server"?</strong></a><br>
  1.2880 +  <a name="7.7"><strong>7.7 Why do I get the message</strong> <tt>Moved #####
  1.2881 +     bytes of new mail to /home/user/mbox from /var/spool/mail/user</tt>
  1.2882 +     <strong>and why did this happen?</strong></a></p>
  1.2883 +
  1.2884 +  <dl>
  1.2885 +    <dd>
  1.2886 +      This is probably caused by the mbox driver. If the file "mbox" exists
  1.2887 +      on the user's home directory and is in UNIX mailbox format, then when
  1.2888 +      INBOX is opened this file will be selected as INBOX instead of the mail
  1.2889 +      spool file. Messages will be automatically transferred from the mail
  1.2890 +      spool file into the mbox file.
  1.2891 +
  1.2892 +      <p>To disable this behavior, delete "mbox" from the EXTRADRIVERS list
  1.2893 +      in the top-level Makefile and rebuild. Note that if you do this, users
  1.2894 +      won't be able to access the messages that have already been moved to
  1.2895 +      mbox unless they open mbox instead of INBOX.</p>
  1.2896 +    </dd>
  1.2897 +  </dl>
  1.2898 +
  1.2899 +  <p><a href="#top">Back to top</a></p>
  1.2900 +  <hr>
  1.2901 +
  1.2902 +  <p><a name="7.8"><strong>7.8 Why isn't it showing the local host name as a
  1.2903 +     fully-qualified domain name?</strong></a><br>
  1.2904 +  <a name="7.9"><strong>7.9 Why is the local host name in the
  1.2905 +     From/Sender/Message-ID headers of outgoing mail not coming out as a
  1.2906 +     fully-qualified domain name?</strong></a></p>
  1.2907 +
  1.2908 +  <dl>
  1.2909 +    <dd>
  1.2910 +      Your UNIX system is misconfigured. The entry for your system in
  1.2911 +      /etc/hosts must have the fully-qualified domain name first, e.g.
  1.2912 +      <pre>
  1.2913 + 105.69.1.234	myserver.example.com myserver
  1.2914 +</pre>
  1.2915 +
  1.2916 +      <p>A common mistake of novice system administrators is to have the
  1.2917 +      short name first, e.g.</p>
  1.2918 +      <pre>
  1.2919 + 105.69.1.234	myserver myserver.example.com
  1.2920 +
  1.2921 +</pre>
  1.2922 +
  1.2923 +      <p>or to omit the fully qualified domain name entirely, e.g.</p>
  1.2924 +      <pre>
  1.2925 + 105.69.1.234	myserver
  1.2926 +</pre>
  1.2927 +
  1.2928 +      <p>The result of this is that when the IMAP toolkit does a
  1.2929 +      gethostbyname() call to get the fully-qualified domain name, it would
  1.2930 +      get "myserver" instead of "myserver.example.com".</p>
  1.2931 +
  1.2932 +      <p>On some systems, a configuration file (typically named
  1.2933 +      /etc/svc.conf, /etc/netsvc.conf, or /etc/nsswitch.conf) can be used to
  1.2934 +      configure the system to use the domain name system (DNS) instead of
  1.2935 +      /etc/hosts, so it doesn't matter if /etc/hosts is misconfigured.</p>
  1.2936 +
  1.2937 +      <p>Check the man pages for gethostbyname, hosts, svc, and/or netsvc for
  1.2938 +      more information.</p>
  1.2939 +
  1.2940 +      <p>Unfortunately, certain vendors, most notably SUN, have failed to
  1.2941 +      make this clear in their documentation. Most of SUN's documentation
  1.2942 +      assumes a corporate network that is not connected to the Internet.</p>
  1.2943 +
  1.2944 +      <p>net.folklore once (late 1980s) held that the proper procedure was to
  1.2945 +      append the results of getdomainname() to the name returned by
  1.2946 +      gethostname(), and some versions of sendmail configuration files were
  1.2947 +      distributed that did this. This was incorrect; the string returned from
  1.2948 +      getdomainname() is the Yellow Pages (a.k.a NIS) domain name, which is a
  1.2949 +      completely different (albeit unfortunately named) entity from an
  1.2950 +      Internet domain. These were often fortuitously the same string, except
  1.2951 +      when they weren't. Frequently, this would result in host names with
  1.2952 +      spuriously doubled domain names, e.g.</p>
  1.2953 +      <pre>
  1.2954 + myserver.example.com.example.com
  1.2955 +
  1.2956 +</pre>
  1.2957 +
  1.2958 +      <p>This practice has been thoroughly discredited for many years, but
  1.2959 +      folklore dies hard.</p>
  1.2960 +    </dd>
  1.2961 +  </dl>
  1.2962 +
  1.2963 +  <p><a href="#top">Back to top</a></p>
  1.2964 +  <hr>
  1.2965 +
  1.2966 +  <p><a name="7.10"><strong>7.10 What does the message:</strong> <tt>Mailbox
  1.2967 +     vulnerable - directory /var/spool/mail must have 1777 protection</tt>
  1.2968 +     <strong>mean? How can I fix this?</strong></a></p>
  1.2969 +
  1.2970 +  <dl>
  1.2971 +    <dd>
  1.2972 +      In order to update a mailbox in the default UNIX format, it is
  1.2973 +      necessary to create a lock file to prevent the mailer from delivering
  1.2974 +      mail while an update is in progress. Some systems use a directory
  1.2975 +      protection of 775, requiring that all mail handling programs be setgid
  1.2976 +      mail; or of 755, requiring that all mail handling programs be setuid
  1.2977 +      root.
  1.2978 +
  1.2979 +      <p>The IMAP toolkit does not run with any special privileges, and I
  1.2980 +      plan to keep it that way. It is antithetical to the concept of a
  1.2981 +      toolkit if users can't write their own programs to use it. Also, I've
  1.2982 +      had enough bad experiences with security bugs while running privileged;
  1.2983 +      the IMAP and POP servers have to be root when not logged in, in order
  1.2984 +      to be able to log themselves in. I don't want to go any deeper down
  1.2985 +      that slippery slope.</p>
  1.2986 +
  1.2987 +      <p>Directory protection 1777 is secure enough on most well-managed
  1.2988 +      systems. If you can't trust your users with a 1777 mail spool (petty
  1.2989 +      harassment is about the limit of the abuse exposure), then you have
  1.2990 +      much worse problems then that.</p>
  1.2991 +
  1.2992 +      <p>If you absolutely insist upon requiring privileges to create a lock
  1.2993 +      file, external file locking can be done via a setgid mail program named
  1.2994 +      /etc/mlock (this is defined by LOCKPGM in the c-client Makefile). If
  1.2995 +      the toolkit is unable to create a &lt;...mailbox...&gt;.lock file in
  1.2996 +      the directory by itself, it will try to call mlock to do it. I do not
  1.2997 +      recommend doing this for performance reasons.</p>
  1.2998 +
  1.2999 +      <p>A sample mlock program is included as part of imap-2007. We have
  1.3000 +      tried to make this sample program secure, but it has not been
  1.3001 +      thoroughly audited.</p>
  1.3002 +    </dd>
  1.3003 +  </dl>
  1.3004 +
  1.3005 +  <p><a href="#top">Back to top</a></p>
  1.3006 +  <hr>
  1.3007 +
  1.3008 +  <p><a name="7.11"><strong>7.11 What does the message:</strong> <tt>Mailbox is
  1.3009 +     open by another process, access is readonly</tt> <strong>mean? How do I
  1.3010 +     fix this?</strong></a></p>
  1.3011 +
  1.3012 +  <dl>
  1.3013 +    <dd>
  1.3014 +      A problem occurred in applying a lock to a /tmp lock file. Either some
  1.3015 +      other program has the mailbox open and won't relenquish it, or
  1.3016 +      something is wrong with the protection of /tmp or the lock.
  1.3017 +
  1.3018 +      <p>Make sure that the /tmp directory is protected 1777. Some security
  1.3019 +      scripts incorrectly set the protection of the /tmp directory to 775,
  1.3020 +      which disables /tmp for all non-privileged programs.</p>
  1.3021 +    </dd>
  1.3022 +  </dl>
  1.3023 +
  1.3024 +  <p><a href="#top">Back to top</a></p>
  1.3025 +  <hr>
  1.3026 +
  1.3027 +  <p><a name="7.12"><strong>7.12 What does the message:</strong> <tt>Can't get
  1.3028 +     write access to mailbox, access is readonly</tt>
  1.3029 +     <strong>mean?</strong></a></p>
  1.3030 +
  1.3031 +  <dl>
  1.3032 +    <dd>The mailbox file is write-protected against you.</dd>
  1.3033 +  </dl>
  1.3034 +
  1.3035 +  <p><a href="#top">Back to top</a></p>
  1.3036 +  <hr>
  1.3037 +
  1.3038 +  <p><a name="7.13"><strong>7.13 I set my POP3 client to "delete messages from
  1.3039 +     server" but they never get deleted. What is wrong?</strong></a></p>
  1.3040 +
  1.3041 +  <dl>
  1.3042 +    <dd>
  1.3043 +      Make sure that your mailbox is not read-only: that the mailbox is owned
  1.3044 +      by you and write enabled (protection 0600), and that the /tmp directory
  1.3045 +      is longer world-writeable. /tmp must be world-writeable because lots of
  1.3046 +      applications use it for scratch space. To fix this, do
  1.3047 +      <pre>
  1.3048 +
  1.3049 + chmod 1777 /tmp
  1.3050 +</pre>as root.
  1.3051 +
  1.3052 +      <p>Make sure that your POP3 client issues a QUIT command when it
  1.3053 +      finishes. The POP3 protocol specifies that deletions are discarded
  1.3054 +      unless a proper QUIT is done.</p>
  1.3055 +
  1.3056 +      <p>Make sure that you are not opening multiple POP3 sessions to the
  1.3057 +      same mailbox. It is a requirement of the POP3 protocol than only one
  1.3058 +      POP3 session be in effect to a mailbox at a time, however some,
  1.3059 +      poorly-written POP3 clients violate this. Also, some background "check
  1.3060 +      for new mail" tasks also cause a violation. See the answer to the
  1.3061 +      <a href="#7.19">What does the syslog message: Killed (lost mailbox
  1.3062 +      lock) user=... host=... mean?</a> question for more details.</p>
  1.3063 +    </dd>
  1.3064 +  </dl>
  1.3065 +
  1.3066 +  <p><a href="#top">Back to top</a></p>
  1.3067 +  <hr>
  1.3068 +
  1.3069 +  <p><a name="7.14"><strong>7.14 What do messages such as:</strong></a></p>
  1.3070 +  <pre>
  1.3071 + Message ... UID ... already has UID ...
  1.3072 + Message ... UID ... less than ...
  1.3073 + Message ... UID ... greater than last ...
  1.3074 + Invalid UID ... in message ..., rebuilding UIDs
  1.3075 +</pre>
  1.3076 +
  1.3077 +  <p><strong>mean?</strong></p>
  1.3078 +
  1.3079 +  <dl>
  1.3080 +    <dd>
  1.3081 +      Something happened to corrupt the unique identifier regime in the
  1.3082 +      mailbox. In traditional UNIX-format mailboxes, this can happen if the
  1.3083 +      user deleted the "DO NOT DELETE" internal message.
  1.3084 +
  1.3085 +      <p>This problem is relatively harmless; a new valid unique identifier
  1.3086 +      regime will be created. The main effect is that any references to the
  1.3087 +      old UIDs will no longer be useful.</p>
  1.3088 +
  1.3089 +      <p>So, unless it is a chronic problem or you feel like debugging, you
  1.3090 +      can safely ignore these messages.</p>
  1.3091 +    </dd>
  1.3092 +  </dl>
  1.3093 +
  1.3094 +  <p><a href="#top">Back to top</a></p>
  1.3095 +  <hr>
  1.3096 +
  1.3097 +  <p><a name="7.15"><strong>7.15 What do the error messages:</strong></a></p>
  1.3098 +  <pre>
  1.3099 + Unable to read internal header at ...
  1.3100 + Unable to find CRLF at ...
  1.3101 + Unable to parse internal header at ...
  1.3102 + Unable to parse message date at ...
  1.3103 + Unable to parse message flags at ...
  1.3104 + Unable to parse message UID at ...
  1.3105 + Unable to parse message size at ...
  1.3106 + Last message (at ... ) runs past end of file ...
  1.3107 +</pre>
  1.3108 +
  1.3109 +  <p><strong>mean? I am using mbx format.</strong></p>
  1.3110 +
  1.3111 +  <dl>
  1.3112 +    <dd>
  1.3113 +      The mbx-format mailbox is corrupted and needs to be repaired.
  1.3114 +
  1.3115 +      <p>You should make an effort to find out why the corruption happened.
  1.3116 +      Was there an obvious system problem (crash or disk failure)? Did the
  1.3117 +      user accidentally access the file via NFS? Mailboxes don't get
  1.3118 +      corrupted by themselves; something caused the problem.</p>
  1.3119 +
  1.3120 +      <p>Some people have developed automated scripts, but if you're
  1.3121 +      comfortable using emacs it's pretty easy to fix it manually. Do
  1.3122 +      <em>not</em> use vi or any other editor unless you are certain that
  1.3123 +      editor can handle binary!!!</p>
  1.3124 +
  1.3125 +      <p>If you are not comfortable with emacs, or if the file is too large
  1.3126 +      to read with emacs, see the "step-by-step" technique later on for
  1.3127 +      another way of doing it.</p>
  1.3128 +
  1.3129 +      <p>After the word "at" in the error message is the byte position it got
  1.3130 +      to when it got unhappy with the file, e.g. if you see:</p>
  1.3131 +      <pre>
  1.3132 + Unable to parse internal header at 43921: ne bombastic blurdybloop
  1.3133 +</pre>The problem occurs at the 43,931 byte in the file. That's the point you
  1.3134 +need to fix. c-client is expecting an internal header at that byte number,
  1.3135 +looking something like:
  1.3136 +      <pre>
  1.3137 + 6-Jan-1998 17:42:24 -0800,1045;000000100001-00000001
  1.3138 +</pre>The format of this internal line is:
  1.3139 +      <pre>
  1.3140 + dd-mmm-yyyy hh:mm:ss +zzzz,ssss;ffffffffFFFF-UUUUUUUU
  1.3141 +</pre>The only thing that is variable is the "ssss" field, it can be as many
  1.3142 +digits as needed. All other fields (inluding the "dd") are fixed width. So,
  1.3143 +the easiest thing to do is to look forward in the file for the next internal
  1.3144 +header, and delete everything from the error point to that internal header.
  1.3145 +
  1.3146 +      <p>Here's what to do if you want to be smarter and do a little bit more
  1.3147 +      work. Generally, you're in the middle of a message, and there's nothing
  1.3148 +      wrong with that message. The problem happened in the *previous*
  1.3149 +      message. So, search back to the previous internal header. Now, remember
  1.3150 +      that "ssss" field? That's the size of that message.</p>
  1.3151 +
  1.3152 +      <p>Mark where you are in the file, move the cursor to the line after
  1.3153 +      the internal header, and skip that many bytes ("ssss") forward. If
  1.3154 +      you're at the point of the error in the file, then that message is
  1.3155 +      corrupt. If you're at a different point, then perhaps the previous
  1.3156 +      message is corrupt and has a too long size count that "ate" into this
  1.3157 +      message.</p>
  1.3158 +
  1.3159 +      <p>Basically, what you need to do is make sure that all those size
  1.3160 +      counts are right, and that moving "ssss" bytes from the line after the
  1.3161 +      internal header will land you at another internal header.</p>
  1.3162 +
  1.3163 +      <p>Usually, once you know what you're looking at, it's pretty easy to
  1.3164 +      work out the corruption, and the best remedial action. Repair scripts
  1.3165 +      will make the problem go away but may not always do the smartest/best
  1.3166 +      salvage of the user's data. Manual repair is more flexible and usually
  1.3167 +      preferable.</p>
  1.3168 +
  1.3169 +      <p>Here is a step-by-step technique for fixing corrupt mbx files that's
  1.3170 +      a bit cruder than the procedure outlined above, but works for any size
  1.3171 +      file.</p>
  1.3172 +
  1.3173 +      <p>In this example, suppose that the corrupt file is INBOX, the error
  1.3174 +      message is</p>
  1.3175 +      <pre>
  1.3176 + Unable to find CRLF at 132551754
  1.3177 +</pre>and the size of the INBOX file is 132867870 bytes.
  1.3178 +
  1.3179 +      <p>The first step is to split the mailbox file at the point of the
  1.3180 +      error:</p>
  1.3181 +
  1.3182 +      <ul>
  1.3183 +        <li>Rename the INBOX file to some other name, such as INBOX.bad.</li>
  1.3184 +
  1.3185 +        <li>Copy the first 132,551,754 bytes of INBOX.bad to another file,
  1.3186 +        such as INBOX.new.</li>
  1.3187 +
  1.3188 +        <li>Extract the trailing 316,116 bytes (132867870-132551754) of
  1.3189 +        INBOX.bad into another file, such as INBOX.tail.</li>
  1.3190 +
  1.3191 +        <li>You no longer need INBOX.bad. Delete it.</li>
  1.3192 +      </ul>In other words, use the number from the "Unable to find CRLF at"
  1.3193 +      as the point to split INBOX into two new files, INBOX.new and
  1.3194 +      INBOX.tail.
  1.3195 +
  1.3196 +      <p>Now, remove the erroneous data:</p>
  1.3197 +
  1.3198 +      <ul>
  1.3199 +        <li>Verify that you can open INBOX.new in IMAP or Pine.</li>
  1.3200 +
  1.3201 +        <li>The last message of INBOX.new is probably corrupted. Copy it to
  1.3202 +        another file, such as badmsg.1, then delete and expunge that last
  1.3203 +        message from INBOX.new</li>
  1.3204 +
  1.3205 +        <li>Locate the first occurance of text in INBOX.tail which looks like
  1.3206 +        an internal header, as described above.</li>
  1.3207 +
  1.3208 +        <li>Remove all the text which occurs prior to that point, and place
  1.3209 +        it into another file, such as badmsg.2. Note that in the case of a
  1.3210 +        single digit date, there is a leading space which must not be removed
  1.3211 +        (e.g. " 6-Nov-2001" not "6-Nov-2001").</li>
  1.3212 +      </ul>
  1.3213 +
  1.3214 +      <p>Reassemble the mailbox:</p>
  1.3215 +
  1.3216 +      <ul>
  1.3217 +        <li>Append INBOX.tail to INBOX.new.</li>
  1.3218 +
  1.3219 +        <li>You no longer need INBOX.tail. Delete it.</li>
  1.3220 +
  1.3221 +        <li>Verify that you can open INBOX.new in IMAP or Pine.</li>
  1.3222 +      </ul>
  1.3223 +
  1.3224 +      <p>Reinstall INBOX.new as INBOX:</p>
  1.3225 +
  1.3226 +      <ul>
  1.3227 +        <li>Check to see if you have received any new messages while
  1.3228 +        repairing INBOX.</li>
  1.3229 +
  1.3230 +        <li>If you haven't received any new messages while repairing INBOX,
  1.3231 +        just rename INBOX.new to INBOX.</li>
  1.3232 +
  1.3233 +        <li>If you have received new messages, be sure to copy the new
  1.3234 +        messages from INBOX to INBOX.new before doing the rename.</li>
  1.3235 +      </ul>
  1.3236 +
  1.3237 +      <p>You now have a working INBOX, as well as two files with corrupted
  1.3238 +      data (badmsg.1 and badmsg.2). There may be some useful data in the two
  1.3239 +      badmsg files that you might want to try salvaging; otherwise you can
  1.3240 +      delete the two badmsg files.</p>
  1.3241 +    </dd>
  1.3242 +  </dl>
  1.3243 +
  1.3244 +  <p><a href="#top">Back to top</a></p>
  1.3245 +  <hr>
  1.3246 +
  1.3247 +  <p><a name="7.16"><strong>7.16 What do the syslog messages:</strong></a></p>
  1.3248 +  <pre>
  1.3249 +
  1.3250 + imap/tcp server failing (looping)
  1.3251 + pop3/tcp server failing (looping)
  1.3252 +</pre>
  1.3253 +
  1.3254 +  <p><strong>mean? When it happens, the listed service shuts down. How can I
  1.3255 +  fix this?</strong></p>
  1.3256 +
  1.3257 +  <dl>
  1.3258 +    <dd>
  1.3259 +      The error message "server failing (looping), service terminated" is not
  1.3260 +      from either the IMAP or POP servers. Instead, it comes from inetd, the
  1.3261 +      daemon which listens for TCP connections to a number of servers,
  1.3262 +      including the IMAP and POP servers.
  1.3263 +
  1.3264 +      <p>inetd has a limit of 40 new server sessions per minute for any
  1.3265 +      particular service. If more than 40 sessions are initiated in a minute,
  1.3266 +      inetd will issue the "failing (looping), service terminated" message
  1.3267 +      and shut down the service for 10 minutes. inetd does this to prevent
  1.3268 +      system resource consumption by a client which is spawning infinite
  1.3269 +      numbers of servers. It should be noted that this is a denial of
  1.3270 +      service; however for some systems the alternative is a crash which
  1.3271 +      would be a worse denial of service!</p>
  1.3272 +
  1.3273 +      <p>For larger server systems, the limit of 40 is much too low. The
  1.3274 +      limit was established many years ago when a system typically only ran a
  1.3275 +      few dozen servers.</p>
  1.3276 +
  1.3277 +      <p>On some versions of inetd, such as the one distributed with most
  1.3278 +      versions of Linux, you can modify the <strong>/etc/inetd.conf</strong>
  1.3279 +      file to have a larger number of servers by appending a period followed
  1.3280 +      by a number after the <strong>nowait</strong> word for the server
  1.3281 +      entry. For example, if your existing /etc/inetd.conf line reads:</p>
  1.3282 +      <pre>
  1.3283 + imap    stream  tcp     nowait  root    /usr/etc/imapd imapd
  1.3284 +</pre>try changing it to be:
  1.3285 +      <pre>
  1.3286 + imap    stream  tcp     nowait.100  root    /usr/etc/imapd imapd
  1.3287 +</pre>Another example (using TCP wrappers):
  1.3288 +      <pre>
  1.3289 + imap    stream  tcp     nowait  root    /usr/sbin/tcpd  imapd
  1.3290 +</pre>try changing it to be:
  1.3291 +      <pre>
  1.3292 + imap    stream  tcp     nowait.100  root    /usr/sbin/tcpd  imapd
  1.3293 +
  1.3294 +</pre>to increase the limit to 100 sessions/minute.
  1.3295 +
  1.3296 +      <p>Before making this change, please read the information in "man
  1.3297 +      inetd" to determine whether or not your inetd has this feature. If it
  1.3298 +      does not, and you make this change, the likely outcome is that you will
  1.3299 +      disable IMAP service entirely.</p>
  1.3300 +
  1.3301 +      <p>Another way to fix this problem is to edit the inetd.c source code
  1.3302 +      (provided by your UNIX system vendor) to set higher limits, rebuild
  1.3303 +      inetd, install the new binary, and reboot your system. This should only
  1.3304 +      be done by a UNIX system expert. In the inetd.c source code, the limits
  1.3305 +      <strong>TOOMANY</strong> (normally 40) is the maximum number of new
  1.3306 +      server sessions permitted per minute, and <strong>RETRYTIME</strong>
  1.3307 +      (normally 600) is the number of seconds inetd will shut down the server
  1.3308 +      after it exceeds TOOMANY.</p>
  1.3309 +    </dd>
  1.3310 +  </dl>
  1.3311 +
  1.3312 +  <p><a href="#top">Back to top</a></p>
  1.3313 +  <hr>
  1.3314 +
  1.3315 +  <p><a name="7.17"><strong>7.17 What does the syslog message:</strong>
  1.3316 +     <tt>Mailbox lock file /tmp/.600.1df3 open failure: Permission
  1.3317 +     denied</tt> <strong>mean?</strong></a></p>
  1.3318 +
  1.3319 +  <dl>
  1.3320 +    <dd>
  1.3321 +      This usually means that some "helpful" security script person has
  1.3322 +      protected /tmp so that it is no longer world-writeable. /tmp must be
  1.3323 +      world-writeable because lots of applications use it for scratch space.
  1.3324 +      To fix this, do
  1.3325 +      <pre>
  1.3326 + chmod 1777 /tmp
  1.3327 +
  1.3328 +</pre>as root.
  1.3329 +
  1.3330 +      <p>If that isn't the answer, check the protection of the named file. If
  1.3331 +      it is something other than 666, then either someone is hacking or some
  1.3332 +      "helpful" person modified the code to have a different default lock
  1.3333 +      file protection.</p>
  1.3334 +    </dd>
  1.3335 +  </dl>
  1.3336 +
  1.3337 +  <p><a href="#top">Back to top</a></p>
  1.3338 +  <hr>
  1.3339 +
  1.3340 +  <p><a name="7.18"><strong>7.18 What do the syslog messages:</strong></a></p>
  1.3341 +  <pre>
  1.3342 + Command stream end of file, while reading line user=... host=...
  1.3343 + Command stream end of file, while reading char user=... host=...
  1.3344 + Command stream end of file, while writing text user=... host=...
  1.3345 +</pre>
  1.3346 +
  1.3347 +  <p><strong>mean?</strong></p>
  1.3348 +
  1.3349 +  <dl>
  1.3350 +    <dd>
  1.3351 +      This message occurs when the session is disconnected without a proper
  1.3352 +      LOGOUT (IMAP) or QUIT (POP) command being received by the server first.
  1.3353 +
  1.3354 +      <p>In many cases, this is perfectly normal; many client implementations
  1.3355 +      are impolite and do this. Some programmers think this sort of rudeness
  1.3356 +      is "more efficient".</p>
  1.3357 +
  1.3358 +      <p>The condition could, however, indicate a client or network
  1.3359 +      connectivity problem. The server has no way of knowing whether there's
  1.3360 +      a problem or just a rude client, so it issues this message instead of a
  1.3361 +      Logout.</p>
  1.3362 +
  1.3363 +      <p>Certain inferior losing clients disconnect abruptly after a failed
  1.3364 +      login, and instead of saying that the login failed, just say that they
  1.3365 +      can't access the mailbox. They then complain to the system manager, who
  1.3366 +      looks in the syslog and finds this message. Not very helpful, eh? See
  1.3367 +      the answer to the <a href="#7.4">Why can't I log in to the server? The
  1.3368 +      user name and password are right!</a> question.</p>
  1.3369 +
  1.3370 +      <p>If the user isn't reporting a problem, you can probably ignore this
  1.3371 +      message.</p>
  1.3372 +    </dd>
  1.3373 +  </dl>
  1.3374 +
  1.3375 +  <p><a href="#top">Back to top</a></p>
  1.3376 +  <hr>
  1.3377 +
  1.3378 +  <p><a name="7.19"><strong>7.19 Why did my POP or IMAP session suddenly
  1.3379 +     disconnect? The syslog has the message:</strong> <tt>Killed (lost
  1.3380 +     mailbox lock) user=... host=...</tt></a></p>
  1.3381 +
  1.3382 +  <dl>
  1.3383 +    <dd>
  1.3384 +      This message only happens when either the traditional UNIX mailbox
  1.3385 +      format or MMDF format is in use. This format only allows one session to
  1.3386 +      have the mailbox open read/write at a time.
  1.3387 +
  1.3388 +      <p>The servers assume that if a second session attempts to open the
  1.3389 +      mailbox, that means that the first session is probably owned by an
  1.3390 +      abandoned client. The common scenario here is a user who leaves his
  1.3391 +      client running at the office, and then tries to read his mail from
  1.3392 +      home. Through an internal mechanism called <em>kiss of death</em>, the
  1.3393 +      second session requests the first session to kill itself. When the
  1.3394 +      first session receives the "kiss of death", it issues the "Killed (lost
  1.3395 +      mailbox lock)" syslog message and terminates. The second session then
  1.3396 +      seizes read/write access, and becomes the new "first" session.</p>
  1.3397 +
  1.3398 +      <p>Certain poorly-designed clients routinely open multiple sessions to
  1.3399 +      the same mailbox; the users of those clients tend to get this message a
  1.3400 +      lot.</p>
  1.3401 +
  1.3402 +      <p>Another cause of this message is a background "check for new mail"
  1.3403 +      task which does its work by opening a POP session to server every few
  1.3404 +      seconds. They do this because POP doesn't have a way to announce new
  1.3405 +      mail.</p>
  1.3406 +
  1.3407 +      <p>The solution to both situations is to replace the client with a good
  1.3408 +      online IMAP client such as Pine. Life is too short to waste on POP
  1.3409 +      clients and poorly-designed IMAP clients.</p>
  1.3410 +    </dd>
  1.3411 +  </dl>
  1.3412 +
  1.3413 +  <p><a href="#top">Back to top</a></p>
  1.3414 +  <hr>
  1.3415 +
  1.3416 +  <p><a name="7.20"><strong>7.20 Why does my IMAP client show all the files on the
  1.3417 +     system, recursively from the UNIX root directory?</strong></a><br>
  1.3418 +  <a name="7.21"><strong>7.21 Why does my IMAP client show all of my files,
  1.3419 +     recursively from my UNIX home directory?</strong></a></p>
  1.3420 +
  1.3421 +  <dl>
  1.3422 +    <dd>
  1.3423 +      A well-written client should only show one level of hierarchy and then
  1.3424 +      stop, awaiting explicit user action before going lower. However, some
  1.3425 +      poorly-designed clients will recursively list all files, which may be a
  1.3426 +      very long list (especially if you have symbolic links to directories
  1.3427 +      that create a loop in the filesystem graph!).
  1.3428 +
  1.3429 +      <p>This behavior has also been observed in some third-party c-client
  1.3430 +      drivers, including maildir drivers. Consequently, this problem has even
  1.3431 +      been observed in Pine. It is important to understand that this is not a
  1.3432 +      problem in Pine or c-client; it is a problem in the third-party driver.
  1.3433 +      A Pine built without that third-party driver will not have this
  1.3434 +      problem.</p>
  1.3435 +
  1.3436 +      <p>See also the answer to <a href="#7.73">Why does my IMAP client show
  1.3437 +      all my files in my home directory?</a></p>
  1.3438 +    </dd>
  1.3439 +  </dl>
  1.3440 +
  1.3441 +  <p><a href="#top">Back to top</a></p>
  1.3442 +  <hr>
  1.3443 +
  1.3444 +  <p><a name="7.22"><strong>7.22 Why does my IMAP client show that I have
  1.3445 +     mailboxes named "#mhinbox", "#mh", "#shared", "#ftp", "#news", and
  1.3446 +     "#public"?</strong></a></p>
  1.3447 +
  1.3448 +  <dl>
  1.3449 +    <dd>
  1.3450 +      These are IMAP namespace names. They represent other hierarchies in
  1.3451 +      which messages may exist. These hierarchies may not necessarily exist
  1.3452 +      on a server, but the namespace name is still in the namespace list in
  1.3453 +      order to mark it as reserved.
  1.3454 +
  1.3455 +      <p>A few poorly-designed clients display all namespace names as if they
  1.3456 +      were top-level mailboxes in a user's list of mailboxes, whether or not
  1.3457 +      they actually exist. This is a flaw in those clients.</p>
  1.3458 +    </dd>
  1.3459 +  </dl>
  1.3460 +
  1.3461 +  <p><a href="#top">Back to top</a></p>
  1.3462 +  <hr>
  1.3463 +
  1.3464 +  <p><a name="7.23"><strong>7.23 Why does my IMAP client show all my files in my
  1.3465 +     home directory?</strong></a></p>
  1.3466 +
  1.3467 +  <dl>
  1.3468 +    <dd>
  1.3469 +      As distributed, the IMAP server is connected to your home directory by
  1.3470 +      default. It has no way of knowing what you might call "mail" as opposed
  1.3471 +      to "some other file"; in fact, you can use IMAP to access any file.
  1.3472 +
  1.3473 +      <p>Most clients have an option to configure your connected directory on
  1.3474 +      the IMAP server. For example, in Pine you can specify this as the
  1.3475 +      "Path" in your folder-collection, e.g.</p>
  1.3476 +      <pre>
  1.3477 + Nickname  : Secondary Folders
  1.3478 + Server    : imap.example.com
  1.3479 + Path      : mail/
  1.3480 + View      : 
  1.3481 +</pre>In this example, the user is connected to the "mail" subdirectory of
  1.3482 +his home directory.
  1.3483 +
  1.3484 +      <p>Other servers call this the "folder prefix" or similar term.</p>
  1.3485 +
  1.3486 +      <p>It is possible to modify the IMAP server so that all users are
  1.3487 +      automatically connected to some other directory, e.g. a subdirectory of
  1.3488 +      the user's home directory. Read the file CONFIG for more details.</p>
  1.3489 +    </dd>
  1.3490 +  </dl>
  1.3491 +
  1.3492 +  <p><a href="#top">Back to top</a></p>
  1.3493 +  <hr>
  1.3494 +
  1.3495 +  <p><a name="7.24"><strong>7.24 Why is there a long delay before I get connected
  1.3496 +     to the IMAP or POP server, no matter what client I use?</strong></a></p>
  1.3497 +
  1.3498 +  <dl>
  1.3499 +    <dd>
  1.3500 +      There are two common occurances of this problem:
  1.3501 +
  1.3502 +      <ul>
  1.3503 +        <li>You are running a system (e.g. certain versions of Linux) which
  1.3504 +        by default attempts to connect to an "IDENT" protocol (port 113)
  1.3505 +        server on your client. However, a firewall or NAT box is blocking
  1.3506 +        connections to that port, so the connection attempt times out.
  1.3507 +
  1.3508 +          <p>The IDENT protocol is a well-known bad idea that does not
  1.3509 +          deliver any real security but causes incredible problems. The idea
  1.3510 +          is that this will give the server a record of the user name, or at
  1.3511 +          least what some program listening on port 113 says is the user
  1.3512 +          name. So, if somebody coming from port nnnnn on a system does
  1.3513 +          something bad, IDENT may give you the userid of the bad guy.</p>
  1.3514 +
  1.3515 +          <p>The problem is, IDENT is only meaningful on a timesharing system
  1.3516 +          which has an administrator who is privileged and users who are not.
  1.3517 +          It is of no value on a personal system which has no separate
  1.3518 +          concept of "system administrator" vs. "unprivileged user".</p>
  1.3519 +
  1.3520 +          <p>On either type of system, security-minded people either turn
  1.3521 +          IDENT off or replace it with an IDENT server that lies. Among other
  1.3522 +          things, IDENT gives spammers the ability to harvest email addresses
  1.3523 +          from anyone who connects to a web page.</p>
  1.3524 +
  1.3525 +          <p>This problem has been showing up quite frequently on systems
  1.3526 +          which use xinetd instead of inetd. Look for files named
  1.3527 +          /etc/xinetd.conf, /etc/xinetd.d/imapd, /etc/inetd.d/ipop2d, and
  1.3528 +          /etc/xinetd.d/ipop3d. In those files, look for lines containing
  1.3529 +          "USERID", e.g.</p>
  1.3530 +          <pre>
  1.3531 + log_on_success += USERID
  1.3532 +</pre>Hunt down such lines, and delete them ruthlessly from all files in
  1.3533 +which they occur. Don't be shy about it.
  1.3534 +        </li>
  1.3535 +
  1.3536 +        <li>The DNS is taking a long time to do a reverse DNS (PTR record)
  1.3537 +        lookup of the IP address of your client. This is a problem in your
  1.3538 +        DNS, which either you or you ISP need to resolve. Ideally, the DNS
  1.3539 +        should return the client's name; but if it can't it should at least
  1.3540 +        return an error quickly.</li>
  1.3541 +      </ul>
  1.3542 +
  1.3543 +      <p>As you may have noticed, neither of these are actual problems in the
  1.3544 +      IMAP or POP servers; they are configuration issues with either your
  1.3545 +      system or your network infrastructure. If this is all new to you, run
  1.3546 +      (don't walk) to the nearest technical bookstore and get yourself a good
  1.3547 +      pedagogical text on system administration for the type of system you
  1.3548 +      are running.</p>
  1.3549 +    </dd>
  1.3550 +  </dl>
  1.3551 +
  1.3552 +  <p><a href="#top">Back to top</a></p>
  1.3553 +  <hr>
  1.3554 +
  1.3555 +  <p><a name="7.25"><strong>7.25 Why is there a long delay in Pine or any other
  1.3556 +     c-client based application call before I get connected to the IMAP
  1.3557 +     server? The hang seems to be in the c-client mail_open() call. I don't
  1.3558 +     have this problem with any other IMAP client. There is no delay
  1.3559 +     connecting to a POP3 or NNTP server with mail_open().</strong></a></p>
  1.3560 +
  1.3561 +  <dl>
  1.3562 +    <dd>
  1.3563 +      By default, the c-client library attempts to make a connection through
  1.3564 +      rsh (and ssh, if you enable that). If the command:
  1.3565 +      <pre>
  1.3566 + rsh imapserver exec /etc/rimapd
  1.3567 +
  1.3568 +</pre>(or ssh if that is enabled) returns with a "* PREAUTH" response, it
  1.3569 +will use the resulting rsh session as the IMAP session and not require an
  1.3570 +authentication step on the server.
  1.3571 +
  1.3572 +      <p>Unfortunately, rsh has a design error that treats "TCP connection
  1.3573 +      refused" as "temporary failure, try again"; it expects the "rsh not
  1.3574 +      allowed" case to be implemented as a successful connection followed by
  1.3575 +      an error message and close the connection.</p>
  1.3576 +
  1.3577 +      <p>It must be emphasized that this is a bug in rsh. It is <em>not</em>
  1.3578 +      a bug in the IMAP toolkit.</p>
  1.3579 +
  1.3580 +      <p>The use of rsh can be disabled in any the following ways:</p>
  1.3581 +
  1.3582 +      <ul>
  1.3583 +        <li>You can disable it for this particular session by either:
  1.3584 +
  1.3585 +          <ul>
  1.3586 +            <li>setting an explicit port number in the mailbox name, e.g.
  1.3587 +              <pre>
  1.3588 + {imapserver.foo.com:143}INBOX
  1.3589 +</pre>
  1.3590 +            </li>
  1.3591 +
  1.3592 +            <li>using SSL (the /ssl switch)</li>
  1.3593 +          </ul>
  1.3594 +        </li>
  1.3595 +
  1.3596 +        <li>You can disable rsh globally by setting the rsh timeout value to
  1.3597 +        0 with the call:
  1.3598 +          <pre>
  1.3599 + mail_parameters (NIL,SET_RSHTIMEOUT,0);
  1.3600 +</pre>
  1.3601 +        </li>
  1.3602 +      </ul>
  1.3603 +    </dd>
  1.3604 +  </dl>
  1.3605 +
  1.3606 +  <p><a href="#top">Back to top</a></p>
  1.3607 +  <hr>
  1.3608 +
  1.3609 +  <p><a name="7.26"><strong>7.26 Why does a message sometimes get split into two
  1.3610 +     or more messages on my SUN system?</strong></a></p>
  1.3611 +
  1.3612 +  <dl>
  1.3613 +    <dd>
  1.3614 +      This is caused by an interaction of two independent design problems in
  1.3615 +      SUN mail software. The first problem is that the "forward message"
  1.3616 +      option in SUN's <em>mail tool</em> program includes the internal "From
  1.3617 +      " header line in the text that it forwarded. This internal header line
  1.3618 +      is specific to traditional UNIX mailbox files and is not suitable for
  1.3619 +      use in forwarded messages.
  1.3620 +
  1.3621 +      <p>The second problem is that the mail delivery agent assumes that mail
  1.3622 +      reading programs will not use the traditional UNIX mailbox format but
  1.3623 +      instead an incompatible variant that depends upon a
  1.3624 +      <em>Content-Length:</em> message header. Content-Length is widely
  1.3625 +      recognized to have been a terrible mistake, and is no longer
  1.3626 +      recommended for use in mail (it is used in other facilities that use
  1.3627 +      MIME).</p>
  1.3628 +
  1.3629 +      <p>One symptom of the problem is that under certain circumstances, a
  1.3630 +      message may get broken up into several messages. I'm also aware of
  1.3631 +      security bugs caused by programs that foolishly trust "Content-Length:"
  1.3632 +      headers with evil values.</p>
  1.3633 +
  1.3634 +      <p>To fix the mailer on your system, edit your sendmail.cf to change
  1.3635 +      the <strong>Mlocal</strong> line to have the <strong>-E</strong> flag.
  1.3636 +      A typical entry will lool like:</p>
  1.3637 +      <pre>
  1.3638 + Mlocal,	P=/usr/lib/mail.local, F=flsSDFMmnPE, S=10, R=20,
  1.3639 +		A=mail.local -d $u
  1.3640 +</pre>This fix will also work around the problem with mail tool, because it
  1.3641 +will insert a "&gt;" before the internal header line to prevent it from being
  1.3642 +interpreted by mail reading software as an internal header line.
  1.3643 +    </dd>
  1.3644 +  </dl>
  1.3645 +
  1.3646 +  <p><a href="#top">Back to top</a></p>
  1.3647 +  <hr>
  1.3648 +
  1.3649 +  <p><a name="7.27"><strong>7.27 Why did my POP or IMAP session suddenly
  1.3650 +     disconnect? The syslog has the message:</strong></a></p>
  1.3651 +  <pre>
  1.3652 + Autologout user=&lt;...my user name...&gt; host=&lt;...my client system...&gt;
  1.3653 +
  1.3654 +</pre>
  1.3655 +
  1.3656 +  <dl>
  1.3657 +    <dd>
  1.3658 +      This is a problem in your client.
  1.3659 +
  1.3660 +      <p>In the case of IMAP, it failed to communicate with the IMAP server
  1.3661 +      for over 30 minutes; in the case of POP, it failed to communicate with
  1.3662 +      the POP server for over 10 minutes.</p>
  1.3663 +    </dd>
  1.3664 +  </dl>
  1.3665 +
  1.3666 +  <p><a href="#top">Back to top</a></p>
  1.3667 +  <hr>
  1.3668 +
  1.3669 +  <p><a name="7.28"><strong>7.28 What does the UNIX error message:</strong>
  1.3670 +     <tt>TLS/SSL failure: myserver: SSL negotiation failed</tt>
  1.3671 +     <strong>mean?</strong></a><br>
  1.3672 +  <a name="7.29"><strong>7.29 What does the PC error message:</strong>
  1.3673 +     <tt>TLS/SSL failure: myserver: Unexpected TCP input disconnect</tt>
  1.3674 +     <strong>mean?</strong></a></p>
  1.3675 +
  1.3676 +  <dl>
  1.3677 +    <dd>
  1.3678 +      This usually means that an attempt to negotiate TLS encryption via the
  1.3679 +      STARTTLS command failed, because the server advertises STARTTLS
  1.3680 +      functionality, but doesn't actually have it (e.g. because no
  1.3681 +      certificates are installed).
  1.3682 +
  1.3683 +      <p>Use the /notls option in the mailbox name to disable TLS
  1.3684 +      negotiation.</p>
  1.3685 +    </dd>
  1.3686 +  </dl>
  1.3687 +
  1.3688 +  <p><a href="#top">Back to top</a></p>
  1.3689 +  <hr>
  1.3690 +
  1.3691 +  <p><a name="7.30"><strong>7.30 What does the error message:</strong> <tt>TLS/SSL
  1.3692 +     failure: myserver: Server name does not match certificate</tt>
  1.3693 +     <strong>mean?</strong></a></p>
  1.3694 +
  1.3695 +  <dl>
  1.3696 +    <dd>
  1.3697 +      An SSL or TLS session encryption failed because the server name in the
  1.3698 +      server's certificate does not match the name that you gave it. This
  1.3699 +      could indicate that the server is not really the system you think that
  1.3700 +      it is, but can be also be called if you gave a nickname for the server
  1.3701 +      or name that was not fully-qualified. You must use the fully-qualified
  1.3702 +      domain name for the server in order to validate its certificate
  1.3703 +
  1.3704 +      <p>Use the /novalidate-cert option in the mailbox name to disable
  1.3705 +      validation of the certificate.</p>
  1.3706 +    </dd>
  1.3707 +  </dl>
  1.3708 +
  1.3709 +  <p><a href="#top">Back to top</a></p>
  1.3710 +  <hr>
  1.3711 +
  1.3712 +  <p><a name="7.31"><strong>7.31 What does the UNIX error message:</strong>
  1.3713 +     <tt>TLS/SSL failure: myserver: self-signed certificate</tt>
  1.3714 +     <strong>mean?</strong></a><br>
  1.3715 +  <a name="7.32"><strong>7.32 What does the PC error message:</strong>
  1.3716 +     <tt>TLS/SSL failure: myserver: Self-signed certificate or untrusted
  1.3717 +     authority</tt> <strong>mean?</strong></a></p>
  1.3718 +
  1.3719 +  <dl>
  1.3720 +    <dd>
  1.3721 +      An SSL or TLS session encryption failed because your server's
  1.3722 +      certificate is "self-signed"; that is, it is not signed by any
  1.3723 +      Certificate Authority (CA) and thus can not be validated. A CA-signed
  1.3724 +      certificate costs money, and some smaller sites either don't want to
  1.3725 +      pay for it or haven't gotten one yet. The bad part about this is that
  1.3726 +      this means there is no guarantee that the server is really the system
  1.3727 +      you think that it is.
  1.3728 +
  1.3729 +      <p>Use the /novalidate-cert option in the mailbox name to disable
  1.3730 +      validation of the certificate.</p>
  1.3731 +    </dd>
  1.3732 +  </dl>
  1.3733 +
  1.3734 +  <p><a href="#top">Back to top</a></p>
  1.3735 +  <hr>
  1.3736 +
  1.3737 +  <p><a name="7.33"><strong>7.33 What does the UNIX error message:</strong>
  1.3738 +     <tt>TLS/SSL failure: myserver: unable to get local issuer
  1.3739 +     certificate</tt> <strong>mean?</strong></a></p>
  1.3740 +
  1.3741 +  <dl>
  1.3742 +    <dd>
  1.3743 +      An SSL or TLS session encryption failed because your system does not
  1.3744 +      have the Certificate Authority (CA) certificates installed on OpenSSL's
  1.3745 +      certificates directory. On most systems, this directory is
  1.3746 +      /usr/local/ssl/certs). As a result, it is not possible to validate the
  1.3747 +      server's certificate.
  1.3748 +
  1.3749 +      <p>If CA certificates are properly installed, you should see
  1.3750 +      factory.pem and about a dozen other .pem names such as
  1.3751 +      thawteCb.pem.</p>
  1.3752 +
  1.3753 +      <p>As a workaround, you can use the /novalidate-cert option in the
  1.3754 +      mailbox name to disable validation of the certificate; however, note
  1.3755 +      that you are then vulnerable to various security attacks by bad
  1.3756 +      guys.</p>
  1.3757 +
  1.3758 +      <p>The correct fix is to copy all the files from the certs/ directory
  1.3759 +      in the OpenSSL distribution to the /usr/local/ssl/certs (or whatever)
  1.3760 +      directory. Note that you need to do this after building OpenSSL,
  1.3761 +      because the OpenSSL build creates a number of needed symbolic links.
  1.3762 +      For some bizarre reason, the OpenSSL "make install" doesn't do this for
  1.3763 +      you, so you must do it manually.</p>
  1.3764 +    </dd>
  1.3765 +  </dl>
  1.3766 +
  1.3767 +  <p><a href="#top">Back to top</a></p>
  1.3768 +  <hr>
  1.3769 +
  1.3770 +  <p><a name="7.34"><strong>7.34 Why does reading certain messages hang when using
  1.3771 +     Netscape? It works fine with Pine!</strong></a></p>
  1.3772 +
  1.3773 +  <dl>
  1.3774 +    <dd>
  1.3775 +      There are two possible causes.
  1.3776 +
  1.3777 +      <p>Check the mail syslog. If you see the message "Killed (lost mailbox
  1.3778 +      lock)" for the impacted user(s), read the FAQ entry regarding that
  1.3779 +      message.</p>
  1.3780 +
  1.3781 +      <p>Check the affected mailbox to see if there are embedded NUL
  1.3782 +      characters in the message. NULs in message texts are a technical
  1.3783 +      violation of both the message format and IMAP specifications. Most
  1.3784 +      clients don't care, but apparently Netscape does.</p>
  1.3785 +
  1.3786 +      <p>You can work around this by rebuilding imapd with the
  1.3787 +      <strong>NETSCAPE_BRAIN_DAMAGE</strong> option set (see
  1.3788 +      src/imapd/Makefile); this will cause imapd to convert all NULs to 0x80
  1.3789 +      characters. A better solution is to enable the feature in your MTA to
  1.3790 +      MIME-convert messages with binary content. See the documentation for
  1.3791 +      your MTA for how to do this.</p>
  1.3792 +    </dd>
  1.3793 +  </dl>
  1.3794 +
  1.3795 +  <p><a href="#top">Back to top</a></p>
  1.3796 +  <hr>
  1.3797 +
  1.3798 +  <p><a name="7.35"><strong>7.35 Why does Netscape say that there's a problem with
  1.3799 +     the IMAP server and that I should "Contact your mail server
  1.3800 +     administrator."?</strong></a></p>
  1.3801 +
  1.3802 +  <dl>
  1.3803 +    <dd>
  1.3804 +      Certain versions of Netscape do this when you click the Manage Mail
  1.3805 +      button, which uses an undocumented feature of Netscape's proprietary
  1.3806 +      IMAP server.
  1.3807 +
  1.3808 +      <p>You can work around this by rebuilding imapd with the
  1.3809 +      <strong>NETSCAPE_BRAIN_DAMAGE</strong> option set (see
  1.3810 +      src/imapd/Makefile) to a URL that points either to an alternative IMAP
  1.3811 +      client (e.g. Pine) or perhaps to a homebrew mail account management
  1.3812 +      page.</p>
  1.3813 +    </dd>
  1.3814 +  </dl>
  1.3815 +
  1.3816 +  <p><a href="#top">Back to top</a></p>
  1.3817 +  <hr>
  1.3818 +
  1.3819 +  <p><a name="7.36"><strong>7.36 Why is one user creating huge numbers of IMAP or
  1.3820 +     POP server sessions?</strong></a></p>
  1.3821 +
  1.3822 +  <dl>
  1.3823 +    <dd>The user is probably using Outlook Express, Eudora, or a similar
  1.3824 +    program. See the answer to the <a href="#7.5">Help! My load average is
  1.3825 +    soaring and I see hundreds of POP and IMAP servers, many logged in as the
  1.3826 +    same user!</a> question.</dd>
  1.3827 +  </dl>
  1.3828 +
  1.3829 +  <p><a href="#top">Back to top</a></p>
  1.3830 +  <hr>
  1.3831 +
  1.3832 +  <p><a name="7.37"><strong>7.37 Why don't I get any new mail notifications from
  1.3833 +     Outlook Express or Outlook after a while?</strong></a></p>
  1.3834 +
  1.3835 +  <dl>
  1.3836 +    <dd>
  1.3837 +      This is a known bug in Outlook Express. Microsoft is aware of the
  1.3838 +      problem and its cause. They have informed us that they do not have any
  1.3839 +      plans to fix it at the present time.
  1.3840 +
  1.3841 +      <p>The problem is also reported in Outlook 2000, but not verified.</p>
  1.3842 +
  1.3843 +      <p>Outlook Express uses the IMAP IDLE command to avoid having to "ping"
  1.3844 +      the server every few minutes for new mail. Unfortunately, Outlook
  1.3845 +      Express overlooks the part in the IDLE specification which requires
  1.3846 +      that a client terminate and restart the IDLE before the IMAP 30 minute
  1.3847 +      inactivity autologout timer triggers.</p>
  1.3848 +
  1.3849 +      <p>When this happens, Outlook Express displays "Not connected" at the
  1.3850 +      bottom of the window. Since it's no longer connected to the IMAP
  1.3851 +      server, it isn't going to notice any new mail.</p>
  1.3852 +
  1.3853 +      <p>As soon as the user does anything that would cause an IMAP
  1.3854 +      operation, Outlook Express will reconnect and new mail will flow again.
  1.3855 +      If the user does something that causes an IMAP operation at least every
  1.3856 +      29 minutes, the problem won't happen.</p>
  1.3857 +
  1.3858 +      <p>Modern versions of imapd attempt to work around the problem by
  1.3859 +      automatically reporting fake new mail after 29 minutes. This causes
  1.3860 +      Outlook Express to exit the IDLE state; as soon as this happens imapd
  1.3861 +      revokes the fake new mail. As long as this behavior isn't known to
  1.3862 +      cause problems with other clients, this workaround will remain in
  1.3863 +      imapd.</p>
  1.3864 +    </dd>
  1.3865 +  </dl>
  1.3866 +
  1.3867 +  <p><a href="#top">Back to top</a></p>
  1.3868 +  <hr>
  1.3869 +
  1.3870 +  <p><a name="7.38"><strong>7.38 Why don't I get any new mail notifications from
  1.3871 +     Entourage?</strong></a></p>
  1.3872 +
  1.3873 +  <dl>
  1.3874 +    <dd>
  1.3875 +      This is a known bug in Entourage.
  1.3876 +
  1.3877 +      <p>You built an older version of imapd with the
  1.3878 +      <strong>MICROSOFT_BRAIN_DAMAGE</strong> option set, in order to disable
  1.3879 +      support for the IDLE command. However, Entourage won't get new mail
  1.3880 +      unless IDLE command support exists.</p>
  1.3881 +
  1.3882 +      <p>Note: the MICROSOFT_BRAIN_DAMAGE option no longer exists in modern
  1.3883 +      versions, as the Outlook Express problem which it attempted to solve
  1.3884 +      has been worked around in another way.</p>
  1.3885 +    </dd>
  1.3886 +  </dl>
  1.3887 +
  1.3888 +  <p><a href="#top">Back to top</a></p>
  1.3889 +  <hr>
  1.3890 +
  1.3891 +  <p><a name="7.39"><strong>7.39 Why doesn't Entourage work at
  1.3892 +     all?</strong></a></p>
  1.3893 +
  1.3894 +  <dl>
  1.3895 +    <dd>
  1.3896 +      It's hard to know. Entourage breaks almost every rule in the book for
  1.3897 +      IMAP. It is highly instructive to do a packet trace on Entourage, as an
  1.3898 +      example of how <em>not</em> to use IMAP. It does things like STATUS
  1.3899 +      (MESSAGES) on the currently selected mailbox and re-fetching the same
  1.3900 +      static data over and over again.
  1.3901 +
  1.3902 +      <p>It seems that every time we understand what it is doing wrong in
  1.3903 +      Entourage and come up with a workaround, we learn about something else
  1.3904 +      that's broken.</p>
  1.3905 +
  1.3906 +      <p>Try building imapd with the <strong>ENTOURAGE_BRAIN_DAMAGE</strong>
  1.3907 +      option set, in order to disable the diagnostic that occurs when doing
  1.3908 +      STATUS on the currently selected mailbox.</p>
  1.3909 +    </dd>
  1.3910 +  </dl>
  1.3911 +
  1.3912 +  <p><a href="#top">Back to top</a></p>
  1.3913 +  <hr>
  1.3914 +
  1.3915 +  <p><a name="7.40"><strong>7.40 Why doesn't Netscape Notify (NSNOTIFY.EXE) work
  1.3916 +     at all?</strong></a></p>
  1.3917 +
  1.3918 +  <dl>
  1.3919 +    <dd>
  1.3920 +      This is a bug in NSNOTIFY; it doesn't handle unsolicited data from the
  1.3921 +      server correctly.
  1.3922 +
  1.3923 +      <p>Fortunately, there is no reason to use this program with IMAP;
  1.3924 +      NSNOTIFY is a polling program to let you know when new mail has
  1.3925 +      appeared in your maildrop. This is necessary with POP; but since IMAP
  1.3926 +      dynamically announces new mail in the session you're better off (and
  1.3927 +      will actually cause less load on the server!) keeping your mail reading
  1.3928 +      program's IMAP session open and let IMAP do the notifying for you.</p>
  1.3929 +
  1.3930 +      <p>Consequently, the recommended fix for the NSNOTIFY problem is to
  1.3931 +      delete the NSNOTIFY binary.</p>
  1.3932 +    </dd>
  1.3933 +  </dl>
  1.3934 +
  1.3935 +  <p><a href="#top">Back to top</a></p>
  1.3936 +  <hr>
  1.3937 +
  1.3938 +  <p><a name="7.41"><strong>7.41 Why can't I connect via SSL to Eudora? It says
  1.3939 +     the connection has been broken, and in the server syslogs I see "Command
  1.3940 +     stream end of file".</strong></a></p>
  1.3941 +
  1.3942 +  <dl>
  1.3943 +    <dd>There is a report that you can fix the problem by going into Eudora's
  1.3944 +    advanced network configuration menu and increasing the network buffer
  1.3945 +    size to 8192.</dd>
  1.3946 +  </dl>
  1.3947 +
  1.3948 +  <p><a href="#top">Back to top</a></p>
  1.3949 +  <hr>
  1.3950 +
  1.3951 +  <p><a name="7.42"><strong>7.42 Sheesh. Aren't there <em>any</em> good IMAP
  1.3952 +     clients out there?</strong></a></p>
  1.3953 +
  1.3954 +  <dl>
  1.3955 +    <dd>
  1.3956 +      Yes!
  1.3957 +
  1.3958 +      <p>Pine is a <em>wonderful</em> client. It's fast, it uses IMAP well,
  1.3959 +      and it generates text mail (life is too short to waste on HTML mail).
  1.3960 +      Also, there are some really wonderful things in progress in the Pine
  1.3961 +      world.</p>
  1.3962 +
  1.3963 +      <p>There are some good GUI clients out there, mostly from smaller
  1.3964 +      vendors. Without naming names, look for the vendors who are active in
  1.3965 +      the IMAP protocol development community, and their products.</p>
  1.3966 +
  1.3967 +      <p>Netscape, Eudora, and Outlook <em>can</em> be configured with enough
  1.3968 +      effort to be good citizens and work well for users, <em>but</em> they
  1.3969 +      can also be badly misconfigured, and often the misconfiguration is the
  1.3970 +      default.</p>
  1.3971 +    </dd>
  1.3972 +  </dl>
  1.3973 +
  1.3974 +  <p><a href="#top">Back to top</a></p>
  1.3975 +  <hr>
  1.3976 +
  1.3977 +  <p><a name="7.43"><strong>7.43 But wait! PC Pine (or other PC program build with
  1.3978 +     c-client) crashes with the message</strong> <tt>incomplete SecBuffer
  1.3979 +     exceeds maximum buffer size</tt> <strong>when I use SSL connections.
  1.3980 +     This is a bug in c-client, right?</strong></a></p>
  1.3981 +
  1.3982 +  <dl>
  1.3983 +    <dd>
  1.3984 +      It's a bug in the Microsoft SChannel.DLL, which implements SSL.
  1.3985 +      Microsoft admits it (albeit with an unstatement: "it's not fully RFC
  1.3986 +      compliant"). The problem is that SChannel indicates that the maximum
  1.3987 +      SSL packet data size is 5 bytes smaller than the actual maximum. Thus,
  1.3988 +      any IMAP server which transmits a maximum sized SSL packet will not
  1.3989 +      work with PC Pine or any other program which uses SChannel.
  1.3990 +
  1.3991 +      <p>It can take a while for the problem to show up. The client has to do
  1.3992 +      something that causes at least 16K of contiguous data. Many clients do
  1.3993 +      partial fetching, which tends to reduce the number of cases where this
  1.3994 +      can happen. However, <em>all</em> software which uses SChannel to
  1.3995 +      support SSL is affected by this bug.</p>
  1.3996 +
  1.3997 +      <p>This problem does not affect UNIX code, since OpenSSL is used on
  1.3998 +      UNIX.</p>
  1.3999 +
  1.4000 +      <p>This problem most recently showed up with the CommunigatePro IMAP
  1.4001 +      server. They have an update which trims down their maximum contiguous
  1.4002 +      data to less than 16K, in order to work around the problem.</p>
  1.4003 +
  1.4004 +      <p>This problem has also shown up with the Exchange IMAP server with
  1.4005 +      UNIX clients (including Pine built with an older version of c-client)
  1.4006 +      which sends full-sized 16K SSL packets. Modern c-client works around
  1.4007 +      the problem by trimming down its maximum outgoing SSL packet size to
  1.4008 +      8K.</p>
  1.4009 +
  1.4010 +      <p>Microsoft has developed a hotfix for this bug. Look up MSKB article
  1.4011 +      number 300562. Contrary to the article text which implies that this is
  1.4012 +      a Pine issue, this bug also affect Microsoft Exchange server with *any*
  1.4013 +      UNIX based client that transmits full-sized SSL payloads.</p>
  1.4014 +    </dd>
  1.4015 +  </dl>
  1.4016 +
  1.4017 +  <p><a href="#top">Back to top</a></p>
  1.4018 +  <hr>
  1.4019 +
  1.4020 +  <p><a name="7.44"><strong>7.44 My qpopper users keep on getting the DON'T DELETE
  1.4021 +     THIS MESSAGE -- FOLDER INTERNAL DATA if they also use Pine or IMAP. How
  1.4022 +     can I fix this?</strong></a></p>
  1.4023 +
  1.4024 +  <dl>
  1.4025 +    <dd>
  1.4026 +      This is an incompatibility between qpopper and the c-client library
  1.4027 +      used by Pine, imapd, and ipop[23]d.
  1.4028 +
  1.4029 +      <p>Assuming that you want to continue using qpopper, look into
  1.4030 +      qpopper's <strong>--enable-uw-kludge-flag</strong> configuration flag,
  1.4031 +      which is documented as "check for and hide UW 'Folder Internal Data'
  1.4032 +      messages".</p>
  1.4033 +
  1.4034 +      <p>The other alternative is to switch from qpopper to ipop3d.</p>
  1.4035 +    </dd>
  1.4036 +  </dl>
  1.4037 +
  1.4038 +  <p><a href="#top">Back to top</a></p>
  1.4039 +  <hr>
  1.4040 +
  1.4041 +  <p><a name="7.45"><strong>7.45 Help! I installed the servers but I can't connect
  1.4042 +     to them from my client!</strong></a></p>
  1.4043 +
  1.4044 +  <dl>
  1.4045 +    <dd>
  1.4046 +      Review the installation instructions carefully. Make sure that you have
  1.4047 +      not skipped any of the steps. Make sure that you have made the correct
  1.4048 +      entries in the configuration files; pay careful attention to the exact
  1.4049 +      spelling of the service names and the path names. Make sure as well
  1.4050 +      that you have properly restarted inetd.
  1.4051 +
  1.4052 +      <p>If you have a system with Yellow Pages/NIS such as Solaris, have you
  1.4053 +      updated the service names there as well as in /etc/services?</p>
  1.4054 +
  1.4055 +      <p>If you have a system with TCP wrappers, have you properly updated
  1.4056 +      the TCP wrapper files (e.g. /etc/hosts.allow and /etc/hosts.deny) for
  1.4057 +      the servers?</p>
  1.4058 +
  1.4059 +      <p>If you have a system which uses xinetd instead of inetd, have you
  1.4060 +      made sure that you have made the correct corresponding xinetd changes
  1.4061 +      for those services?</p>
  1.4062 +
  1.4063 +      <p>Try telneting to the server port (143 for IMAP, 110 for POP3). If
  1.4064 +      you get a "refused" error, that probably means that you don't have the
  1.4065 +      service set up in inetd.conf. If the connection opens and then closes
  1.4066 +      with no message, the service is set up, but either the path name of the
  1.4067 +      server binary in inetd.conf is wrong or your TCP wrappers are
  1.4068 +      configured to deny access.</p>
  1.4069 +
  1.4070 +      <p>If you don't know how to make the corresponding changes to these
  1.4071 +      files, seek the help of a local expert for your system.</p>
  1.4072 +    </dd>
  1.4073 +  </dl>
  1.4074 +
  1.4075 +  <p><a href="#top">Back to top</a></p>
  1.4076 +  <hr>
  1.4077 +
  1.4078 +  <p><a name="7.46"><strong>7.46 Why do I get the message</strong> <tt>Can not
  1.4079 +     authenticate to SMTP server: 421 SMTP connection went away!</tt>
  1.4080 +     <strong>and why did this happen? There was also something about</strong>
  1.4081 +     <tt>SECURITY PROBLEM: insecure server advertised AUTH=PLAIN</tt></a></p>
  1.4082 +
  1.4083 +  <dl>
  1.4084 +    <dd>
  1.4085 +      Some versions of qmail, including that running on mail.smtp.yahoo.com,
  1.4086 +      disconnect the SMTP session if you fail to authenticate prior to
  1.4087 +      attempting to transmit mail. An attempt to authenticate was made, but
  1.4088 +      it failed because the server had already disconnected.
  1.4089 +
  1.4090 +      <p>To work around this, you need to specify /user=... in the host name
  1.4091 +      specification.</p>
  1.4092 +
  1.4093 +      <p>The SECURITY PROBLEM came about because the server advertised the
  1.4094 +      AUTH=PLAIN SASL authentication mechanism outside of a TLS-encrypted
  1.4095 +      session, in violation of RFC 4616. This message is just a warning, and
  1.4096 +      in fact occurred after the server had disconnected.</p>
  1.4097 +    </dd>
  1.4098 +  </dl>
  1.4099 +
  1.4100 +  <p><a href="#top">Back to top</a></p>
  1.4101 +  <hr>
  1.4102 +
  1.4103 +  <p><a name="7.47"><strong>7.47 Why do I get the message</strong> <tt>SMTP
  1.4104 +     Authentication cancelled</tt> <strong>and why did this happen? There was
  1.4105 +     also something about</strong> <tt>SECURITY PROBLEM: insecure server
  1.4106 +     advertised AUTH=PLAIN</tt></a></p>
  1.4107 +
  1.4108 +  <dl>
  1.4109 +    <dd>
  1.4110 +      This is a bug in the SMTP server.
  1.4111 +
  1.4112 +      <p>Some versions of qmail, including that running on
  1.4113 +      mail.smtp.yahoo.com, have a bug in their implementation of SASL in
  1.4114 +      their SMTP server, which renders it non-compliant with the
  1.4115 +      standard.</p>
  1.4116 +
  1.4117 +      <p>If the client does not provide an initial response in the command
  1.4118 +      line for an authentication mechanism whose profile does not have an
  1.4119 +      initial challenge, qmail issues a bogus response:</p>
  1.4120 +      <pre>
  1.4121 + 334 ok, go on
  1.4122 +</pre>The problem is the "ok, go on". This violates RFC 4954's requirement
  1.4123 +that the text part in a 334 response be a BASE64 encoded string; in other
  1.4124 +words, it is a protocol syntax error.
  1.4125 +
  1.4126 +      <p>In the case of AUTH=PLAIN, RFC 4422 (page 7) requires that the
  1.4127 +      encoded string have no data. In other words, the appropropiate
  1.4128 +      standards-compliant server response is "334" followed by a SPACE and a
  1.4129 +      CRLF.</p>
  1.4130 +
  1.4131 +      <p>The SECURITY PROBLEM came about because the server advertised the
  1.4132 +      AUTH=PLAIN SASL authentication mechanism outside of a TLS-encrypted
  1.4133 +      session, in violation of RFC 4616. This message is just a warning, and
  1.4134 +      is not related the "Authentication cancelled" problem.</p>
  1.4135 +    </dd>
  1.4136 +  </dl>
  1.4137 +
  1.4138 +  <p><a href="#top">Back to top</a></p>
  1.4139 +  <hr>
  1.4140 +
  1.4141 +  <p><a name="7.48"><strong>7.48 Why do I get the message</strong> <tt>Invalid
  1.4142 +     base64 string</tt> <strong>when I try to authenticate to a Cyrus
  1.4143 +     server?</strong></a></p>
  1.4144 +
  1.4145 +  <dl>
  1.4146 +    <dd>
  1.4147 +      This slightly misleading message is the way that a Cyrus server
  1.4148 +      indicates that an authentication exchange was cancelled. It is not
  1.4149 +      indicative of a bug or protocol violation.
  1.4150 +
  1.4151 +      <p>The most common reason that this happens is if the Cyrus server
  1.4152 +      offers Kerberos authentication, c-client is built with Kerberos
  1.4153 +      support, but your client system is not within the Kerberos realm. In
  1.4154 +      this case, the client code will try to authenticate via Kerberos, fail
  1.4155 +      to get the Kerberos credentials, cancel the authentication attempt, and
  1.4156 +      try the next available authentication technology.</p>
  1.4157 +    </dd>
  1.4158 +  </dl>
  1.4159 +
  1.4160 +  <p><a href="#top">Back to top</a></p>
  1.4161 +  <hr>
  1.4162 +
  1.4163 +  <p><br></p>
  1.4164 +
  1.4165 +  <h2><a name="additional">8. Where to Go For Additional Information</a></h2>
  1.4166 +  <hr>
  1.4167 +
  1.4168 +  <p><a name="8.1"><strong>8.1 Where can I go to ask questions?</strong></a><br>
  1.4169 +  <a name="8.2"><strong>8.2 I have some ideas for enhancements to IMAP. Where
  1.4170 +     should I go?</strong></a></p>
  1.4171 +
  1.4172 +  <dl>
  1.4173 +    <dd>
  1.4174 +      If you have questions about the IMAP protocol, or want to participate
  1.4175 +      in discussions of future directions of the IMAP protocol, the
  1.4176 +      appropriate mailing list is imap-protocol@u.washington.edu. You can
  1.4177 +      subscribe to this list via <a href=
  1.4178 +      "mailto:imap-protocol-request@u.washington.edu"><tt>imap-protocol-request@u.washington.edu</tt></a>
  1.4179 +
  1.4180 +      <p>If you have questions about this software, you can send me email
  1.4181 +      directly or use the imap-uw@u.washington.edu mailing list. You can
  1.4182 +      subscribe to this list via <a href=
  1.4183 +      "mailto:imap-uw-request@u.washington.edu"><tt>imap-uw-request@u.washington.edu</tt></a></p>
  1.4184 +
  1.4185 +      <p>If you have general questions about the use of IMAP software
  1.4186 +      (not specific to the UW IMAP toolkit) use the
  1.4187 +      imap-use@u.washington.edu mailing list. You can subscribe to
  1.4188 +      this list via <a href=
  1.4189 +      "mailto:imap-use-request@u.washington.edu"><tt>imap-use-request@u.washington.edu</tt></a></p>
  1.4190 +
  1.4191 +      <p>You must be a subscriber to post to these lists.  As an
  1.4192 +      alternative, you can use the
  1.4193 +      <strong>comp.mail.imap</strong> newsgroup.</p>
  1.4194 +    </dd>
  1.4195 +  </dl>
  1.4196 +
  1.4197 +  <p><a href="#top">Back to top</a></p>
  1.4198 +  <hr>
  1.4199 +
  1.4200 +  <p><a name="8.3"><strong>8.3 Where can I read more about IMAP and other email
  1.4201 +     protocols?</strong></a></p>
  1.4202 +
  1.4203 +  <dl>
  1.4204 +    <dd>We recommend <em>Internet Email Protocols: A Developer's Guide</em>,
  1.4205 +    by Kevin Johnson, published by Addison Wesley, ISBN 0-201-43288-9.</dd>
  1.4206 +  </dl>
  1.4207 +
  1.4208 +  <p><a href="#top">Back to top</a></p>
  1.4209 +  <hr>
  1.4210 +
  1.4211 +  <p><a name="8.4"><strong>8.4 Where can I find out more about setting up and
  1.4212 +     administering an IMAP server?</strong></a></p>
  1.4213 +
  1.4214 +  <dl>
  1.4215 +    <dd>
  1.4216 +      We recommend <em>Managing IMAP</em>, by Dianna Mullet &amp; Kevin
  1.4217 +      Mullet, published by O'Reilly, ISBN 0-596-00012-X.
  1.4218 +
  1.4219 +      <p>This book also has an excellent comparison of the UW and Cyrus IMAP
  1.4220 +      servers.<br></p>
  1.4221 +    </dd>
  1.4222 +  </dl>
  1.4223 +
  1.4224 +  <p><a href="#top">Back to top</a></p>
  1.4225 +
  1.4226 +  <p>Last Updated: 15 November 2007</p>
  1.4227 +
  1.4228 +<!--chtml include "//imap/incs/bottom.inc"-->
  1.4229 +

UW-IMAP'd extensions by yuuji