
Q: I got "SCRIPT_DIR not set in /etc/openwebmail_path.conf !" error?
A: On systems not passing perl script name as $0, openwebmail relies 
   on /etc/openwebmail_path.conf to know the directory it locates.

   Please put 'the path of your openwebmail cgi directory' in the first 
   line of file /etc/openwebmail_path.conf. 

   For example, if the script is located at 

   /usr/local/www/cgi-bin/openwebmail/openwebmail.pl,
   
   then the content of /etc/openwebmail_path.conf should be:

   /usr/local/www/cgi-bin/openwebmail/

Q: I got the script content instead of the openwebmail login screen?
   I got "You don't have permission to access openwebmail.pl on this
   server" error?
A: Your apache is not properly configured to execute CGI program.
   Please edit the httpd.conf for your apache and modify it as follow:

   <Directory /var/www/cgi-bin>
      AllowOverride All
      Options ExecCGI
      Order allow,deny
      Allow from all
   </Directory>

   You will notice "Order allow,deny" and "Allow from all" lines are
   missing in default.

   Then reload httpd.

   (thanks to Thomas Chung, tchung.AT.openwebmail.org)

ps: If you are using Mandrake:
    httpd config file is located at /etc/httpd/conf/commonhttpd.conf
    httpd reload command is "service httpd reload"

    If you are using FreeBSD:
    httpd config file is located at /usr/local/etc/apache/httpd.conf
    httpd reload command is "/usr/local/sbin/apachectl restart"

Q: I got "Internal server error" when running Open WebMail?
   I got "can not do setuid" error?
   I got "Software error: Can't locate etc/openwebmail.conf in @INC" error?
A: There are many possible answers...

   1. Please check if you have installed a complete set of perl 5.005 or above.
      and You have uncompressed the openwebmail-1.xx.tgz with proper parameter.
      It should be "tar -zxvBpf openwebmail-1.xx.tgz"

   2. Your openwebmail scripts may have wrong owner or mode.
      The permission of all openwebmail*.pl should be

      mode=4555
      owner=root
      group=mail

   3. Your perl may be compiled with suid ability disabled.
      a. check if you have a executable of suidperl, 
         then 'chmod 4555 suidperl'

      b. Or recompile your perl with suid enabled
         Here are the steps: 
         1. grab the perl source tar ball
         2. sh Configure -de (de means default perl config) 
         3. edit config.sh and set this : 
            d_dosuid='define' 
            d_suidsafe='undef'
         4. then make, make install (make suidperl if needed) 
         5. if you have compiled suidperl, then chmod 4555 suidperl
            if you don't have suidperl, change #!/usr/bin/suidperl to 
            the path of your perl
         (thanks to Nemo Kaiser, nemoo.AT.users.sourceforge.net)

      c. Or use uty/suidwrap.pl to generate C wrappers for all suid scripts.
         Here are the steps:
         1. cd cgi-bin/openwebmail
         2. perl uty/wrapsuid.pl /fullpath/cgi-bin/openwebmail
         3. change #!/usr/bin/suidperl to the path of your perl

         All suid scripts will be renamed to .scriptname.pl and
         the C wrapper will be generated and named as script.pl
         (thanks to Chris Heegard, heegard.AT.NativeI.com)

      ps: If you use the wrappers for the suid scripts on the Solaris,
          and the spelling check doesn't work not work
          You may need to recompile your perl with suid enabled
          instead of using C wrappers.
         (thanks to Isam Ishaq, isam.AT.planet.edu)


   4. The MIME::Base64 or CGI module on your system may be too old
      a. install MIME-Base64-2.12.tar.gz
      b. install CGI.pm-2.74.tar.gz

   5. Please install the libnet-1.0901.tar.gz, this is required since 
      version 1.60.

ps: In most cases, you can run the './openwebmail.pl' in text terminal
    to get more information about the error.

Q: Can I install openwebmail without iconv() support?
A: Yes, you may copy the uty/iconv.pl.fake over the iconv.pl,
   which doesn't use iconv() at all but still support charset conversion for
   Chinese and Japanese.

Q: I got "Can't check filesystem of script ./openwebmail.pl for nosuid"?
A: Your openwebmail may be installed on a filesystem mounted nosuid.
   Please remove the nosuid parameter from /etc/fstab or install openwebmail
   to other filesystem.

ps: 'man mount' for more information about nosuid

Q: I got "Please execute  '.../cgi-bin/openwebmail-tool.pl --init' on 
   server first!"?
A: This is to init the mapping tables used by openwebmail, you need to

   telnet to your server
   su root 
   cd the_cgi_bin_dir_for_openwebmail
   ./openwebmail-tool.pl --init

Q: I got "Please execute script openwebmail-tool.pl with full path!" 
   in executing 'openwebmail-tool.pl --init' with full path?
A: This may happens on platforms that run suid scripts through /dev/fd/.
   Please run the script from where it is located.

   cd the_dir_of_your_openwebmail_cgi
   ./openwebmail-tool.pl --init

Q: I got "Please change the 3 following options in openwebmail.conf...."
   in executing 'openwebmail-tool.pl --init' ?
A: You may has wrong settings in your openwebmail.conf.
   Please modify youropenwebmail.conf as openwebmail suggested and 
   don't forget to redo 'openwebmail-tool.pl --init' again.
   
Q: --init complains the dbm options after I upgrade OS?
   --init complains the dbm options after I upgrade perl?
   --init complains the dbm options when I copy openwebmail.conf to another machine??
A: The perl system may use different dbm format depending on what packages
   have been installed in your server. And these dbm format may be not compatible.
   To know what dbm packages are used by your perl, please execute:

   perl uty/dbmtest.pl

   And you will see output like below:

   ------------------------------------------------------------------
   You perl uses the following packages for dbm::

   AnyDBM_File.pm          /usr/libdata/perl/5.00503/AnyDBM_File.pm
   NDBM_File.pm            /usr/libdata/perl/5.00503/mach/NDBM_File.pm


   The dbm options in openwebmail.conf should be set as follows:

   dbm_ext                 .db
   dbmopen_ext             none
   dbmopen_haslock         no
   ----------------------------------------------------------------------

   AnyDBM_File.pm is a "pure virtual base class", it has nothing of its own.
   It's just there to inherit from one of the various DBM packages in the 
   following order: NDBM_File, DB_File, GDBM_File, SDBM_File, ODBM_File 
   (you may type 'perldoc AnyDBM_File' to see comparison of these packages)

   In the above example, the system uses NBDM package for dbm.
   when you upgrade OS, perl or migrade openwebmail to other machine, 
   you should run dbmtest.pl on both system to ensure that they use same underlying 
   dbm package.
   
Q: ok, my two machins use different DBM systems, what can I do next?
A: you can enforce the new one to use the same dbm package as the old one by
   putting the 'use XXX_File.pm' after the 'use strict;' in all openwebmail*pl.
   then try to run 'openwebmail-tool.pl --test' to see if the XXX_File.pm is
   really used.
  
   where XXX_File.pm is the value you get by running dbmtest.pl on old machine.

Q: The login menu showed okay, but I always got login failure?
A: Check auth_module option in openwebmail.conf:

   If it is 'auth_unix.pl', 
   check if $unix_passwdfile_encrypted and $unix_passwdmkdb in auth_unix.pl 
   are correct

   If it is 'auth_pam.pl', 
   make sure you have followed the instructions of 'PAM SUPPORT' in readme.txt.
   If you still got login failure, you can debug the pam module by:
   1. modify auth_pam.pl
      uncomment all the lines of log_time(...)
   2. login to openwebmail
   3. check the /tmp/openwebmail.debug for more information.

ps:If you are running openwebmail under SpeedyCGI, don't forget to do a
   'touch openwebmail*pl' after you complete the modification to auth module.

Q: It took a long time in the first login?
A: Openwebmail has to initialize some mapping tables for future use,
   it creates these tables in the first successful login, this guarantees 
   that openwebmail creates files only if it is correctly installed.

ps:This automatic table initialization has been removed since openwebmail-1.80.
   The sysadm have to initialize the db by himself explicitly with the command

   './openwebmail-tool.pl --init'

Q: It took a long time in every login?
A: You probably have wrong settings for option dbm_ext and dbmopen_ext in the 
   openwebmail.conf, please execute uty/dbmtest.pl to find correct settings.

Q: Openwebmail hangs at every login after I saved the preference in the first 
   time?
A: You probably have wrong settings for option dbmopen_haslock in the 
   openwebmail.conf, please execute uty/dbmtest.pl to find correct settings.

Q: Will it speedup the login if the GNU copyright page is removed?
A: The GNU copyright page should be displayed for less than 1 second.
   if you see it for a very long time after you login, then openwebmail 
   is busy in processing your INBOX folder (eg: mail indexing, filtering, 
   trash cleaning..)

Q: My openwebmail is slow, how can I make it faster?
A: You may try to use Open WebMail with the SpeedyCGI package, you will
   get about 5x-10 speedup. Please refer to the readme.txt with keyword 
   SpeedyCGI for more detail.

Q: How SpeedyCGI speeds up Open WebMail?
A: SpeedyCGI makes Open WebMail resident in memory at the first request,
   then the following requests will be served immediately without the 
   overhead of starting perl CGI.

   This resident copy will terminate if it is idle for a certain time,
   the default is 3600 seconds (1 hour)
   You can set this with -t option in the Open WebMail scripts.

   eg: #!/usr/bin/speedy -T -- -t7200

Q: Will the resident Open Webmail become larger and larger and finally 
   a memory hog?
A: No. We have tried our best to remove any memory leak from Open WebMail.
   And a resident CGI will be restarted after it has serverd certain 
   number of requests. The default maxrun number is 500.
   You can set this with -r option in the Open WebMail scripts.

   eg: #!/usr/bin/speedy -T -- -t7200 -r250

Q: Some files of name like 'speedy.10.0.50.S' appear in my system /tmp?
A: They are the temporary files used by speedy and its backend program.
   Please don't remove them. If you hope to put them in other location,
   You can set the prefix of temporary files with -T option

   eg: #!/usr/bin/speedy -T -- -t7200 -r250 -T/var/tmp/.speedy

Q: Open WebMail is fast when it is resident in memory, but the firsttime startup
   delay is still long, is it possible to hide that delay from user?
A: You can use the script preload.pl to preload openwebmail scripts,
   so the webmail user won't see the startup delay.

1. through web interface
   http://your_server/cgi-bin/openwebmail/preload.pl
   Please refer to preload.pl for default password and how to change it.

2. through command line or you can put the following line in crontab

   0 * * * *	/usr/local/www/cgi-bin/openwebmail/preload.pl -q

Q: Some of my users login okay, but others don't, why?
A: It is possible that you are upgrading from version prior to 1.41 
   to the newer version. The virtual user support is totally reimplemented.
   It uses virtusertable instead of genericstable for user mapping now. 
   Please refer to 
   http://www.sendmail.org/virtual-hosting.html to know how to translate 
   entries in genericstable to virtusertable.

Q: Some of my user with invalid shell couldn't login since upgrade to 1.80?
A: A new variable $check_shell has been added to the auth_unix.pl and 
   auth_unix_cobalt.pl in 1.80 or above. 
   It is set to 1 by default, which means only users with valid shell can 
   login. Please set it to 0 to skip the valid shell check.

Q: The login is okay, but I can't change by my password with openwebmail?
A: There are 2 possible answers for this:
   1. Your passwdfile is not local accessible.
      If you use auth_unix.pl for authentication and your 
      $unix_passwdfile_encrypted is not a local accessible file 
      (ex: examples in auth_unix.pl that are terminated with |), 
      the changepassword feature won't be available.
      In these cases, you have to use auth_pam.pl to get the changepassword
      to work.
   2. Your system doesn't support saved set-user-ID, so openwebmail won't get
      enough privilege to change the passwd file.
      Try to set savedsuid_support to 'no' in openwebmail.conf to solve 
      this problem.
   3. The authentication module which you used doesn't support password 
      changing, ex: auth_pop3.pl

Q: I use openwebmail with NIS/YP system, the user can login but can not 
   change their password?
A: The NIS/YP password can not be changed with auth_unix.pl, you need to 
   use the auth_pam.pl as the authentication module.

Q: I got "Couldn't open XXX-session-0.370606494136155!" error after login?
A: You openwebmail-1.xx.tgz was uncompressed with improper parameter.
   It should be "tar -zxvBpf openwebmail-1.xx.tgz"
   Or you can refer to the file permission list in the end of readme.txt
ps: you may check the permission cgi-bin/openwebmail/etc/sessions first,
    it should be owner=root, group=mail, mode=770

Q: I got "Software error: Can't locate MIME/Base64.pm in @INC"?
A: Please install the  MIME-Base64-2.12.tar.gz.

Q: I got "Software error: Can't locate Text/Iconv.pm in @INC"?
A: Please install the Text-Iconv-1.2.tar.gz, this is required since 
   openwebmail-1.80

Q: I got "Use of uninitialized value in subroutine entry at /xxx/DB_File.pm 
   line yyy" error ?
A: The line you got error should be inside the sub routine tie_hash_or_array.
   Please find the following comment line in DB_File.pm:

   # make recno in Berkeley DB version 2 work like recno in version 1

   And add the following line just before the above line:

   $arg[3] = 0666 unless defined $arg[3] ;

   (thanks to Paul Marquess, Paul.Marquess.AT.btinternet.com 
          and mainely_linux.AT.users.sourceforge.net)

Q: Everything works fine, but I got timeout when clicking the calendar button?
A: Please check your apache error log if it has lines like below:

   [...] openwebmail-cal.pl: Use of uninitialized value in subroutine entry 
   at /usr/lib/perl5/5.8.0/i386-linux-thread-multi/DB_File.pm line xxx.

   If yes, please refer to the solution in previous question.

Q: Everything seems be fine at the beginning, but if I tried to open a 
   message after a period of time, the content of other message was showed 
   instead of the one I clicked?
A: This is due to a bug of tell() in perl 5.8. And RedHat 8.0 bundles Perl 
   5.8 by default. Please upgrade your openwebmail to 1.81 or higher.
   And you should try to find a bug fix for your perl since other applications 
   written by perl may operate improperly due to this bug

Q: I got "can't open /var/log/openwebmail.log" error?
A: Please check the openwebmail.log permission, it should be
   owner=root, group=mail, mode=660

ps: If you get this error periodicly and your are using Mandrake Linux,
    You may have to move the logfile somewhere else.
    The Mandrake's (8.2 and 9.0) security system periodically scans the 
    /var/log directory and changes ownerships/permissions.  
    (thanks to Karl Schricker, karl_schricker.AT.gmx.net)

Q: Most functions work fine, but I could not send message.
   I got "Can't locate Net/SMTP.pm in @INC ..." error?
   I got "Internal server error"?
A: Please install the libnet-1.0901.tar.gz, this is required since 
   openwebmail 1.60.

Q: I am sure the sendmail was running up on my mail server, but I got 
   "Couldn't open SMTP server 127.0.0.1" error when sending messages?
A: Your sendmail may be configured to listen on the server_ip:25 only,
   it didn't listen on 127.0.0.1:25
   You can either

   a. override the option smtpserver in openwebmail.conf and 
      set it to your server_ip

   b. modify the sendmail.cf and find the following line

   O DaemonPortOptions=Port=smtp,Addr=x.x.x.x, Name=MTA
   (where x.x.x.x is the server_ip)

   Please change the x.x.x.x to 0.0.0.0 to make sendmail 
   listen on all IPs binding on the server network interfaces.

Q: I still got the "Couldn't open SMTP server 127.0.0.1" error?
A: Please check the permission of your /etc/protocols and /etc/services,
   it should be 0644. (-rw-r--r--)

Q: I got 'Sorry, there was a problem sending your message' error?
A: a. Please check if smtpserver option in openwebmail.conf points to valid
      SMTP server, its default is '127.0.0.1'. If you set it to name of some
      other SMTP server, please be sure the SMTP server allows mails relayed 
      from your host.
   b. When SMTP server is set to 127.0.0.1, please be sure the hosts.allow
      has the following entry

      sendmail : localhost 127.0.0.1 : allow

Q: Does openwebmail support SASL authentication on SMTP?
A: Yes, but only the PLAIN type authentication is supported.
   The username/password will be encoded with base64, so it is not very secure.
   To enable the SASL authentication:
   1. set option smtpauth to yes in openwebmail.conf
   2. set the smtpauth_username, smtpauth_password in smtpauth.conf

Q: The 'From' field of my message contained only 'username@'?
A: You may has wrong setting for option domainnames in openwebmail.conf
   please list all domainnames separated with comma, or
   use auto for this setting, openwebmail will use the hostname in the url 
   or call '/bin/hostname' to get the FQDN (fully qualified domain name)
   of your host.

Q: The domainname detected by openwebmail is not what I want,
   how can I specified the outgoing mail domain for all my users?
A: Please set the domainnames option in openwebmail.conf from 'auto' to
   the domainname you want. Multiple domainnames can be specified only 
   if separated by comma

Q: How can I use LDAP to authenticate user in openwebmail?
A: You have 2 ways to do this:
   1. use the auth_ldap.pl written by Ivan Cerrato, pengus.AT.libero.it
   2. use auth_pam module and let pam to talk with ldap server.

   Below is an article posted at sourceforge by ispman.AT.user.sourceforge.net
   (http://sourceforge.net/forum/message.php?msg_id=1462314)

   ---------------- begin ----------------
   I hope this is useful to someone:

   I was able to get openwebmail to authenticate using ldap/pam on a system 
   with Redhat 7.1, pam_ldap135, and OpenLDAP 2.0.18.

   In openwebmail.conf ~

   auth_module             auth_pam.pl

   In auth_pam.pl ~

   my $pam_servicename="openwebmail"; 
   my $pam_passwdfile_plaintext="/etc/passwd";

   vi /etc/pam.d/openwebmail:

   #%PAM-1.0 
   auth       required     /lib/security/pam_unix.so 
   auth       sufficient   /lib/security/pam_ldap.so 
   account    required     /lib/security/pam_unix.so 
   account    sufficient   /lib/security/pam_ldap.so

   That's it.  LDAP users will authenticate with the pam_ldap module and 
   system users with pam_unix.
   ---------------- end ----------------

Q: How can I use multiple virtual domains with openwebmail?
A: First, you have to decide whether to use real virtual hosting or 
   just user alias.

   1. The User Alias

   User alias is much simpler, your system is actually a one domain machine.
   You only have to define the user alias in virtusertable.

   For example, you have 1    real domain server.com and 
                         2 virtual domain virtual_1.com, virtual_2.com 
   for your server. 

   You already have tom and john on this server.
   And now you want 2 more tom and john for each virtual domain.

   Define the following entries in your virtusertable will make it.

   tom@virtual_1.com	tom1
   tom@virtual_2.com	tom2
   john@virtual_1.com	john1
   john@virtual_2.com	john2

   And how these users are used?

   If the user logins as tom and the webmail url is http://virtual_1.com/....
   then alias tom@virtual_1.com will be matched, real user tom1 will be used.
   If the user logins as tom and the webmail url is http://virtual_2.com/....
   then alias tom@virtual_2.com will be matched, real user tom2 will be used.
   
   If the user logins as tom and the webmail url is http://server.com/....
   then real user tom will be authenticated.

   If the user logins as tom@virtual_1.com, then no matter what the url is,
   the alias tom@virtual_1.com will be matched, user tom1 will be used.

   In the user alias mapping, users of different virtualdomains are actually 
   mapped to the real domain and then passed to same authentication module.


   2. Real Virtual Hosting

   The real virtual hosting means your system is configured to a multiple 
   domain machine in either smtpd, pop3d, webmail and authentication module.

   You will need to use the per domain config file in openwebmail for each 
   of your virtual domain. These config files will be loaded based on

   1. the domainname part in loginname, or
   2. the hostname in the url of the webmail

   ps: You may need to use the domainname_equiv option to ensure no matter which 
       domainname is used by user or in URL, they will be mapped to a consistent one.

   For example:

   If the user login as tom and the webmail url is http://virtual_1.com/...,
   config file for virtual_1.com will be loaded
   If the user login as tom and the webmail url is http://virtual_2.com/...,
   config file for virtual_2.com will be loaded
   If the user logins as tom@virtual_1.com, then no matter what the url is,
   config file for virtual_1.com will be loaded

   Each domain can have its own set of options in its config file,
   including domainname, authentication module, quota limit, mailspooldir ...

   A more detailed example is described in the Kevin Ellis's webpage: 
   "How to setup virtual users on Open WebMail using Postfix & vm-pop3d"
   http://www.bluelavalamp.net/owmvirtual/

Q: How is the domain of a login user determined?
A: It is determined in the following order(the earlier one has higher precedence)
   1. from the login name
      eg: the user logined with username@virtualdomain
   2. from the parameter 'logindomain' specified in login page url
      eg: the login page was linked with 
          http://server/cgi-bin/openwebmail/openwebmail.pl?logindomain=virtualdomain
   3. from the servername specified in the login page url
      eg: the login page was linked with
          http://virtualdomain/cgi-bin/openwebmail/openwebmail.pl

Q: The default mail domain for my user is always wrong, how can I set it?
A: To have openwebmail find the correct mail domain for the user, 
   you'd give it some hint.

   For example, if the webmail url is

   http://mail.server_1.com/cgi-bin/.....,

   and you want the email for tom to be tom@virtual_1.com.

   You can achieve this in either the following 2 ways:

   1. create per user config file etc/users.conf/tom
      and set option domainnames to virtual_1.com
   2. create per domain config file etc/sites.cof/mail1.server_1.com
      and set option domainnames to virtual_1.com

   While 1 is only for the user tom, the method 2 has effect for all users 
   who logins with the url http://mail.server_1.com/cgi-bin/....

Q: I want to change not only the domainname part but also the username part 
   of the default email address?
A: You can use the virtusertable or the per user config file

   1. virtusertable:
      One or more email address can be defined in virtusertable for same user,
      all those email addresses will be used as the default email address for 
      that user
   2. per user config file:
      You can set the default_fromemails option in the per user config file.
      Multiple default email addresses can be specified only if you separate
      them with comma.

   ps: While virtusertable is convenient in setting default email addresses 
       for many users, per user config file let sysadm control many properties
       for a specific user.

Q: How can I disallow the user to set their from email address?
A: set option enable_setfromemail to 'no' in either openwebmal.conf or per 
   user config.

Q: Some of my messages were moved to trash folder automatically?
A: Your messages were either filtered by 'global filter rule',
   'faked smtp filter', 'faked from filter' or 'faked exe contenttype filter'. 

   Global filter will filter messages with know virus attachments. The global
   filter rules are defined in the file global_filterbook
   (global_filterbook is defined as %ow_etcdir%/global_filterbook in 
    openwebmail.conf.)

   The 'faked smtp filter' will filter messages that have a faked smtp
   source, those messages are often from spammers. 
   The 'faked from filter' will filter messages whose From: field is different
   than the email address in the SMTP envelope address, those messages are 
   often generated from virus. 

   The 'faked exe contenttype filter' will filter messages that have 
   executable attachment with faked contenttype, eg: audio, midi...
   These messages are often generated by viruses, the browser will download
   the attachment because its contenttype is audio and then execute the 
   downloaded file because it file extension is exe/com/bat/scr/pif/lnk.

   The three faked xxx filters are default disabled and the default can be 
   changed in openwebmail.conf. The user can also enable/disable it in 
   the user preference. 

Q: What are "messages with faked smtp"?
A: In short, they are messages coming from mail servers that fake their 
   name from other machines. 

   Where is a message coming from?

   A message sent from machine A to machine B may have 2 cases:
   a. A ---> M1 ---> M2 ---> B (M1, M2 are mail servers)
      In this case, openwebmail use M1 as the from server. 
      Since most of the time, A is windows machine using outlook.
   b  A -------------------> B
      In this case, openwebmail use A as the from server.

   How do we know if a from server fakes his name?   

   Each host may have 3 names in the mail header:
   $byas - name used by this server when saying hello to incoming connection
   $relay - name used by this server when relaying mail through other host
   $connectfrom - ip and name detected by other hosts resolved from DNS system
                  when receiving connection from this server

   A from host is faking his name if
   a. $byas doesn't equal to $relay, and
   b. $connectfrom doesn't equal to $relay, and
   c. $connectfrom has different domain than the destitution server B, and
   d. $connectfrom is not private IP

Q: I still want the filtered messages, how can I disable faked smtp filter 
   and faked exe contenttype filter completely?
A: 1. Set default_filter_fakedsmtp and default_filter_fakedexecontenttype
      to 'no' in openwebmail.conf. This will turn off the two filter for 
      all newly created user
   2. Uncheck the faked smtp filter and faked exe contenttype filter option 
      in user preference. This will disable the two filters for a specific 
      user

Q: Some of my messages disappeared?
A: Your messages my be removed by the delmail_ifquota feature.

Q: How does the delmail_ifquotahit option work?
   Which message will be removed first?
A: It will clean trash and draft first,
   then remove oldest messages in other folders.
   The removal will stop if the quota size is download to the 90% of user quota limit.
ps:The messages in INBOX and user defined folders will be removed only if
   these folders occupy the majority of the mailfolder space.

   Please refer to routine cutfolders in ow-shared.pl for detail

Q: How does the delfile_ifquotahit option work?
   Which file will be removed first?
A: It will remove the oldest files or direcotries under the webdiskrootdir
   (webdiskrootdir is default to / of user homedir, but you can change it).
   The removal will stop if the quota size is download to the 90% of user quota limit.

Q: I could not add attachments?
   Open WebMail was hanged when I pressed the 'add' button to add attachments?
A: 1. Your CGI or MIME-Base64 module may be too old,
      Please download CGI.pm-2.74.tar.gz and MIME-Base64-2.12.tar.gz in
      http://turtle.ee.ncku.edu.tw/openwebmail/download/packages/ 
      and install them to your system.
   2. Your proxy may limit the size of a POST request.
      Try to add attachments with no proxy setting in your browser.
      If you are the administrator of the squid proxy server,
      please set the request_body_max_size option to a larger value.

Q: Attachments disappeared when I forwarded a message?
A: Check permission of the following directories
   cgi-bin/openwebmail/etc          - owner=root, group=mail, mode=755
   cgi-bin/openwebmail/etc/sessions - owner=root, group=mail, mode=770
   cgi-bin/openwebmail/etc/users    - owner=root, group=mail, mode=770

Q: The permission of cgi-bin/openwebmail/etc is correct but attachments 
   still disappeared in message forwarding?
A: Hmmm, please upgrade to the latest version. 
   Some very old version(1.03,1.04) has little problem in attachment handling.

Q: What is the difference between 'Forward', 'ForwardAsAtt', 'ForwardAsOrig'
A: If A send msg1 to B, 
   and B forward this msg as msg2 to B 

   forward:
   the subject of msg2 will be the subject of msg1 with a prefix "Fw:".
   msg2 will have all attachments and content of msg1, 
   and headers of msg1 will be put into the body msg2 as content

   forwardasatt:
   the subject of msg2 will be the subject of msg1 with a prefix "Fw:".
   msg2 body will be empty
   and the raw format of msg1 will be become an attachment of msg2.

   forwardasorig:
   the subject, body and attachments of msg2 will exactly the same as msg1.
   the replyto header of msg2 will be set to A.
   So in case C replies the msg2, the reply will go back to A

Q: When I checked 'edit folder menu', I found some folders were empty but 
   took disk space?
A: The disk space occupied by a folder shown in 'edit folder menu' includes
   the size of a folder and its index. Though folder is empty, the folder 
   index still has some data structure to maintain.

Q: When I clicked 'spell check' button, I got "Internal Server error" in new
   window?
A: 1. Please be sure that you have installed ispell-3.1.20.tar.gz
   2. If you are using C wrappers for suid scripts on Solaris,
      please recompile you perl with suid enabled instaed of using 
      the C wrappers.
      (thanks to Isam Ishaq, isam.AT.planet.edu)

Q: Ispell has been correctly installed, but spellcheck still doesn't work?
A: The spellcheck in old version of openwebmail doesn't work on RedHat 7.x,
   please upgrade your openwebmail to the latest version.

Q: Why is openwebmail-spell.pl a suid root program?
A: Because it needs to read the preference file, ~/mail/.openwebmailrc, 
   of different users to get their language and dictionary setting.

Q: I got 'Couldn't get read lock on ....' error?
         'Couldn't get write lock on ....' error?
A: This may happen if the folder openwebmail want to access is locked by
   other process. Most of the time, it is due to the concurrent accesses 
   to the folder by other mail client through the pop3/imap daemons.
   This is okay, just back to previous page and try again.

   If you always got this error and be sure it is not caused by pop3/imap,
   you may try to debug the filelock in the following steps:

   1. install the 'lsof' utility on your system
      (lsof is available at http://freshmeat.net/projects/lsof/)
   2. cd  your_web/cgi-bin/openwebmail
      patch < uty/ow-shared.pl.filelock.diff
   3. step 2 will turn the filelock routine in ow-shared.pl to a version 
      special for debugging, the debug output will be written to 
      /tmp/openwebmail.debug
   4. login into openwebmail and do some operation that will cause lock error,
      then check /tmp/openwebmail.debug for further information
   5. Finally, don't forget to do 'patch < uty/filelock.pl.diff' again to 
      reverse ow-shared.pl back to the original state.

Q: I have problems in reading some mail....
A: please check 
   http://turtle.ee.ncku.edu.tw/openwebmail/download/doc/changes.txt
   to see if any update fixes your problem and download the 
   openwebmail-current.tgz

Q: The autoreply function doesn't work?
A: An incoming message won't be replied by vacation.pl if
   1. the destinated username has entries defined in /etc/alias which causes
      the mail routed to another account without calling vacation.pl
   2. the destinated username doesn't not appear as an recipient in To: or Cc:
   3. this message is sent by the destinated username himself

   If your message is not in the above 3 cases, please be sure that 
   vacationinit and vacationpipe in openwebmail.conf have pointed to the 
   path where the vacation program is.

   If the path is correct, you can do debug with the -d option

   1. add the '-d' parameter to the vacationpipe in openwebmail.conf
      like below

      vacationpipe  /usr/local/www/cgi-bin/openwebmail/vacation.pl -d -t60s

   2. choose a user, enable his autoreply in openwebmail user preference
   3. check the ~user/.forward file, the '-d' option should appear after 
      vacation.pl
   4. send a message to this user to test the autoreply
   5. check the /tmp/vacation.debug for possible error information

Q: When I enable autoreply feature, others get "Returned mail: see
   transcript for details" instead of my autoreply message?
A: Your sendmail may be configured with Sendmail Restricted SHell or smrsh.
   vacation.pl file needs to be added to smrsh.

   If you are using RedHat 7.1, you may link vacation.pl to /etc/smrsh/

   cd /etc/smrsh
   ln -s /var/www/cgi-bin/openwebmail/vacation.pl /etc/smrsh/vacation.pl
   (thanks to Emir Litric, elitric.AT.yahoo.com)

Q: The email notification for calendar event doesn't work?
A: You need to use openwebmail-tool.pl in crontab to check the calendar 
   events for sending the notification emails. For example:

   0 */2 * * * /usr/local/www/cgi-bin/openwebmail/openwebmail-tool.pl -a -n -q

   The above line will use openwebmail-tool.pl to check the calendar 
   events for all users every two hours. Please note we use this 
   frequency because the default value of option calendar_email_notifyinterval 
   is 120 (minute). You have to set the crontab according to your 
   calendar_email_notifyinterval.

Q: Can I use openwebmail with SSL?
   I got "site not found" or "could not connect to the server" error?
A: Yes, openwebmail can work with SSL.
   The error is due to IE doesn't do keepalives correctly when using SSL.

   Please add the following line to your Apache configuration for SSL
   (or VirtualHost container)

   SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
   (thanks to Happy Camper, hcamper.AT.users.sourceforge.net) 

Q: Can I use openwebmail with SSL on multiple virtual domains on one server?
A: Since apache only allow SSL for one virtual domain, you can have only one
   https url. To use virtual domain other than the one specified in https,
   you have to specify the virtual domain in URL when link to login webpage

   https://sample.com/openwebmail/openwebmail.pl?logindomain=vdomain1.com
   (thanks to scott.AT.littlefish.ca for his code)

Q: I got "Software error: ndbm store returned -1, errno 49, ..."?
A: The user may exceed his quota limit on the file system.
   Please remove unwanted files or increase the quota for user.

Q: My SENT folder shows -1 or other negative message size rather then
   regular message size?
A: This problem occurs if you installed Open WebMail on the same partition 
   where quota is enabled. Open WebMail uses temp files in 
   cgi-bin/openwebmail/etc/sessions folders.
   Solution is to move sessions folder to another partition with no Quota.

   Please read RedHat-README.txt for detailed explanation on setting up
   this, since this problem mostly occurs on RedHat Linux 6.2 and bellow. 
   (thanks to Emir Litric, elitric.AT.yahoo.com)

Q: I got "db warning - msg xxx index missing in INBOX" in log?
   What does this mean?
A: It may have two possible meanings.

   1. Your message is moved to other folder by the openwebmail filter module 

      While openwebmail always maintains the index consistent with the folder 
      content, openwebmail only calls the mailfilter in the following two 
      condition: 
      a. before browsing the message list of a folder 
      b. before reading a message of the INBOX 

      If a message(aaa) matching the filter rule comes to INBOX folder, this 
      message will become the neighbor of one of the existing messages(bbb) 
      in the index db. If the user is reading message bbb, then aaa will 
      become the target linked by the right or left arrows in the bottom of 
      the readmessage webpage. Now if user clicks the arrow for next page, 
      you will get the db index missing error since the message(aaa) is 
      moved to other folder by the filter before being accessed.. 

   2. Your message is removed by other pop3/imap client.
      Do you use outlook and openwebmail at the same time?

Q: I got "db warning - msg yyy index inconsistence in INBOX" in the log?
   Does it mean my message were lost?
A: No, you message were not lost, it just means the index db was not 
   reflecting the newest state of your mail folder, openwebmail did the 
   reindex automatically after logging this message.

Q: There were strange characters in the mail filter menu and those rules could
   not be deleted?
A: This is due to the dbmopen() of your perl didn't add the ".db" extension 
   automatically, so the ~/.filter.book and its index were written to the same
   file. This problem can be fixed by properly setting option dbm_ext and 
   dbmopen_ext. To find the correct setting for the two options: 

   perl cgi-bin/openwebmail/uty/dbmtest.pl [enter]

   and you will get output like this:

   dbm_ext              .db
   dbmopen_ext          none
   dbmopen_haslock      no

   Then put the three lines into your openwebmail.conf.

Q: I got "Your request didn't contain the proper session ID cookie -- 
   access denied!" error?
A: Please enable the cookie function of your browser.
   Or you can set the option session_checkcookie to 'no' to disable 
   the check of cookie in openwebmail, but this may put the user 
   session in danger that it could be hijacked by others.

Q: I got "Your request didn't come from the same ip of this session -- 
   access denied!" error?
A: The client may access the webmail server through a gateway which may 
   dynamicly change it IP address, please set the option 
   session_checksameip to 'no' to disable the IP check.

Q: My openwebmail was okay, but I got "Your request didn't contain the 
   proper session ID cookie -- access denied!" in these days?
A: Openwebmail puts user uploaded attachments in 
   cgi-bin/openwebmail/etc/sessions/ temporarily. 
   User will get error if there is no space left on the partition where
   cgi-bin/openwebmail/etc/sessions/ lives or user has exceeded his disk quota.

   Please move cgi-bin/openwebmail/etc/sessions to a larger partition with
   diskquota disabled, then create a symbolic link to that new directory

   cd /new_place

   mkdir sessions
   chmod 770 sessions
   chown 0 sessions
   chgrp mail sessions

   cd yourweb_cgi-bin/openwebmail/etc/
   rm -Rf sessions
   ln -s /new_place/sessions .

Q: Is the 'filename search' in webdisk case sensitive or case insensitive?
A: If the 'find' command in your unix supports -iname, the search will be 
   case insensitive. Or it will be case sensitive.

Q: Why the 'content search' in webdisk searches files in current directory
   only?
A: The file content search is done with the unix command 'grep'.
   If the 'grep' in your unix supports -r, the search will search current 
   directory and all its sub directories recursively. Or it will search files 
   in current directory only.

Q: How can I upgrade from old version of Open Webmail?
A: Each version of openwebmail is made to be backward compatible with
   old ones, no user setting or mail message will be lost after upgrade.
   The upgrade steps:
   1. make a copy of your old openwebmail.conf
   2. install new openwebmail in the same location as old version
   3. update the new openwebmail.conf with the setting in old one.

Q: How can I move old messages in my mail client into openwebmail folders?
A: a. If your mail client program supports IMAP and your mail server has 
      imapd installed, you may move old messages in the mail client to 
      remote folders on mail server through the IMAP protocol. 
      Be sure to put the folders under ~/mail so openwebmail can find them
      automatically.
   b. Some mail client stores or can export messages into unix mbox format
      folder file.(eg: Eudora) You can just upload the mbox file to the 
      ~/mail/ and openwebmail will find them automatically.

   ps: If your folder file is in dos text format, you may need use the 
       following command to stripe out the \r at each end of line.

       perl -pi -e "s/\r\n/\n/" folderfile

Q: How can I report problem?
A: If your Open WebMail doesn't work, please post your problem on
   openwebmail forum http://sourceforge.net/forum/forum.php?forum_id=108433
   with the following information

   OS
   Perl Version
   your openwebmail.conf
   the ls -l of the perl executable used in your openwebmail.pl
   the ls -l of your cgi-bin/openwebmail and cgi-bin/openwebmail/etc
   the ls -la of the ~user/mail/
   the error message in your browser

   If your Open WebMail works but it shows strange output for some messages,
   please forward the message as an attachment to us
   (openwebmail.AT.turtle.ee.ncku.edu.tw)
   ps: clicking the 'forward as attachment' icon in message reading menu

Q: How can I debug the Open WebMail by myself?
A: You may use uty/debugadd.pl to add debugging code to openwebmailscripts
   1. cd cgi-bin/openwebmail/
   2. perl uty/debugadd.pl *pl

   Then use openwebmail as normal, all sub routine calls will be logged into
   /tmp/openwebmail.debug with timestamp. It should be helpful in debugging.

   While you finish the debugging, you have to use uty/debugdel.pl to
   remove debugging code from those scripts
   1. cd cgi-vin/openwebmail/
   2. perl uty/debugdel.pl *pl

Q: Can I specify the composemessage menu as the openwebmail default?
A: You can call the openwebmail with url
   http://server/openwebmail.pl?action=composemessage&to=EMAIL&subject=SUBJECT

Q: Can I specify the calendar month view as the openwebmail default?
A: You can call the openwebmail with url
   http://server/openwebmail.pl?action=calmonth

Q: Can I specify the calendar day view as the openwebmail default?
A: You can call the openwebmail with url
   http://server/openwebmail.pl?action=calday

Q: Can I specify the webdisk as the openwebmail default?
A: You can call the openwebmail with url
   http://server/openwebmail.pl?action=webdisk

Q: Can I call openwebmail from my programs with username/password specified?
A: this is a little dangerous since the loginname and password will
   be displayed on the URL line of the user's browser.

   You can call the openwebmail with url
   http://server/openwebmail.pl?loginname=USER&password=PASS
   or even with action specified
   http://server/openwebmail.pl?action=calmonth&loginname=USER&password=PASS

Q: Can I get the mail/event status of a user before he logins openwebmail?
   How can I get the username before user really types it?
A: If a user has ever successfully logined into openwebmail, the loginname 
   will be stored to cookie "openwebmail-loginname" at the browser side.
   The following CGI script demonstrates how to use this information.
-----------------------------------------
#!/usr/bin/perl
use CGI qw(-private_tempfiles :standard);
print "Content-type: text/html\n\n";
my $info;
my $loginname = cookie("openwebmail-loginname");
if ($loginname ne "") {
   $info=`/usr/local/www/cgi-bin/openwebmail/openwebmail-tool.pl -m -e $loginname`;
}
print $info;
------------------------------------------

Q: I already have a web application which would do authentication for user,
   how can I integrate openwebmail with it so the user doesn't need to login
   again when click the openwebmail link?
A: All you have to do is to write a very simple auth_xxx.pl which checks if 
   a user have already logined on your web application through server session 
   file or cookies. 
   And the link to call the openwebmail.pl should be 
   http:/xxxx/openwebmail.pl?loginname=USERNAME&password=dummy 

Q: How can I setup IE to trigger Open WebMail compose window when I click
   a "mailto:someone@somehost" link?
   How can I set Open Webmail as the default mail client?
A: In Windows Explorer, if you go to Tools -> Folder Options, click on the 
   File Types tab. In the window that appears, scroll down the list to the 
   entry for  "URL:MailTo Protocol".  Highlight URL:MailTo and click edit.
  
   Choose to edit the action for open.  By default it probably has a 
   command to open Outlook Express (or your default email client).  
   Change the Application to read:  
   "C:\program files\internet explorer\iexplore.exe" http://your_server/cgi-bin/openwebmail/openwebmail.pl?loginname=NAME&password=PASSWORD

   This will make Windows open Internet Explorer and go directly to the .pl 
   page and login with the specified user and pass.

   (Thanks to Mike Andrews, mike.AT.lcso.org)

   If you hope to goto the compose window directly 
   with the email address put in the To field, 
   please use the following open string instead

   "C:\Program Files\Internet Explorer\iexplore.exe" http://your_server/cgi-bin/openwebmail/openwebmail.pl?loginname=USER&password=PASSWORD&action=composemessage&to=%1

   (Thanks to Sergiy Zubatiy, sergey_sd.AT.users.sourceforge.net)

Q: How can I set an alias/redirection/link to the openwebmail script so users 
   can use openwebmail with a shorter url?
A: Please create a file, index.html, like below. Either a or b is okay. 
   Then put this index.html to the location mapped by the url you want.
   a.
   ----------------------------------------
   <html><head>
   <meta http-equiv="Refresh" 
   content="0;URL=http://your_server/cgi-bin/openwebmail/openwebmail.pl">
   </head></html>
   ----------------------------------------
   b.
   ---------------------------------------
   <html>
   <body onload=
   "window.open('http://your_server/cgi-bin/openwebmail/openwebmail.pl','_top')">
   </body>
   </html>
   ----------------------------------------

   ps: An example redirect html is available at the data/openwebmail/redirect.html

Q: Can I install openwebmail without root privilege?
A: Yes, try the auth_pop3.pl. Some information is available in it.

Q: Can I setup mail account for user without creating the unix account?
A: Yes, you need postfix + vm-pop3d + openwebmail.
   Kevin Ellis(kevin.AT.bluelavalamp.net) has made a webpage for this,
   it is available at http://www.bluelavalamp.net/owmvirtual/

Q: I have set openwebmail for virtual user with vm-pop3d, but I got
   "Sorry, root login is disabled for security's sake" at login?
A: Please check the descriptions in auth_vm-pop3d.pl/auth_pop3.pl and 
   find which case you are using. If you are using case b, don't forget 
   to set the $local_uid to the uid used by your vm-pop3d for all virtual 
   users.
ps: We suggest you use the auth_vdomain.pl for system running vm-pop3d+postfix
    Please refer to descriptions in auth_vdomain.pl for more detail.

Q: Can Open WebMail be used with mod_perl?
A: No, the most reason is mod_perl can't be used for setuid program.
   But Open Webmail works great in persistent mode with SpeedyCGI.
   It is very fast too.

Q: Does Open WebMail support maildir and vpop3mail user by Qmail?
A: No, It doesn't.

Q: Will Open WebMail support maildir and vpop3mail used by Qmail?
A: Maybe, but it won't be implemented in the near future since we don't use
   qmail on our mail server. It is said that qmail has a 'mbox' compatible 
   mode, you may use that mode with openwebmail.

Q: Can Openwebmail do xxx function or have yyy control option?
A: The best way to know all features of openwebmail is to check the
   cgi-bin/openwebmail/etc/openwebmail.conf.help. Please check it.

Q: Can I use Open WebMail in a commercial web site? 
A: Yes. Open WebMail is GPLed software (please see copyright.txt for 
   detail of GPL). You can distribute/use/modify/sell it freely ONLY IF

   a. The GPL Copyright page must be kept untouched.
   b. Any improvement of Open WebMail or any product based on Open WebMail
      must be released to the public for free in source form if it is not for 
      internal use.
   c. Products based on Open Webmail must be also distributed under GPL.


03/23/2003

openwebmail.AT.turtle.ee.ncku.edu.tw
