A manager's page is provided as part of the CGI in order to let the system administrator change settings in the user.dat files. On this page it is possible to change any setting for a wildcard selection of users, and to perform other managerial tasks. See below for an example of how to change the disk_quota of all your users.
To access the manager's page, enter the following url:
http://my.site.com/cgi-bin/webimap.cgi?cmd=manager
In order to access the manager's page, you will require the use of a 'managers_password' which must match the corresponding setting in the webmail.ini configuration file. Before any manager function can be used you must enter the manager's password.
An example of the manager's page (after entering the password) is shown below:
On the manager's page it is possible to examine/edit the details of any user.
It is also possible to make changes which affect all users, or a select
group of users. To do this, enter the wild card user list, the variable to change
and the new value. In the example setting, the 'default_quota' of each user
is changed to 1000
kilobytes.
When using WebMail on an NFS server, you will need to add the following to your ini file:
nfs_server true
lock_force_wait trueThis will ensure that only one CGI at any time will have access to the user information..
When Using WebMail on an NFS server, we highly recomend you use a version of WebMail since version 3.0k
You should also see server farming (running WebMail on more than 1 machine).
WebMail supports multiple template sets, allowing different styles or even different languages on the one site. Each template can have it's own template directory as well as it's own image location. In your ini file, add one line for each template set that you wish to have, in the following layout:
tpl_set <number> <templates_dir> <nwimg> <name>
The 'number' is the template number that is used to determine which template you are using, this should be unique. The 'templates_dir' is the full path to the template directory.
The 'nwimg' is the web server relative path to the images.
And 'name' is just text that is displayed to the user about the template set.Example:
tpl_set 1 /var/spool/webmail/marble /nwimg/mail/marble Marble
tpl_set 2 /var/spool/webmail/iconic /nwimg/mail/iconic Iconic
tpl_set 3 /var/spool/webmail/globe /nwimg/mail/globe GlobeThe next step is changing the templates to allow allow the users to select which templates they want to use. Below are the template additions needed in order to allow the user to select which template to use.
login.tpl
||ifdef||multiple_tpl||
<!--- If you wish multiple template sets to be user selected then remove the following --->
<!--- The users can then select their template sets on the configuration page. --->
<tr>
<td align="right">Select Template Set:</td>
<td> <select name="selected_tpl" size=1>
<option value="">(Default)</option>
||begin_tpl||
<option value="||tpl_number||">||tpl_text||</option>
||end_tpl||
</select>
</td>
</tr>
||endif||config.tpl
||ifdef||multiple_tpl||
<tr>
<td align="right">Select Template Set:</td>
<td> <select name="_selected_tpl" size=1>
||begin_tpl||
||ifequal||_selected_tpl||tpl_number||
<option selected value="||tpl_number||">||tpl_text||</option>
||else||
<option value="||tpl_number||">||tpl_text||</option>
||endif||
||end_tpl||
</select>
</td>
</tr>
||endif||
WebMail supports bulletins where only WebMail users will see them, so you can tell WebMail users about the latest changes and updates to WebMail, or any other information that you want WebMail users to have.
There are a few ini settings which are used for bulletins. These are:
bulletin_path /var/spool/webmail/bulletins
bulletin_users lynden,ralph,adim*
bulletin_dflt_time 30
bulletin_max_time 30The 'bulletin_path' must be setup and the directories exist in order for bulletins to work. This is where all the bulletin Emails are stored. The 'bulletin_users' are the list of users that are allowed to send bulletins. The last two settings are used to determine how long the bulletin will last before it is removed automatically.
The 'send_bull.tpl' template is used to send a bulletin message. The template 'bulletin.tpl' is the template that lists the current bulletins available. When sending a bulletin, you can specify the list of users that will receive this bulletin if you wish. The default is that all users receive the bulletin.
When there are bulletins that users have not seen before, they are automatically shown the bulletin list when they login instead of the Email list. In this way they are forced to see at least the subject of the bulletin. When using the frames template, the 'frame.tpl' has the code that redirects the page.
ie. ||ifdef||display_bulletin||
<frame src="||action||?cmd=bulletin&utoken=||utoken||" name="list">
||else||
<frame src="||action||?cmd=list&utoken=||utoken||" name="list">
||endif||When using non-frames the template change is done internally by the CGI.
WebMail can support server farming, where you setup a copy of the CGI on each machine.
On one machine you setup a workarea where all the user profiles are stored.
ie. /var/spool/webmail
Then, on each of the other machines, you setup a (map/link) to this location. This way each machine can be setup to point to the one workarea location. On each machine, set the workarea ini setting to match the map/link you have setup.
With the templates you have a choice. You can either do the same as above where there is only 1 copy of the templates and each CGI points to it, or you can have a separate copy of the template set on each machine, thus saving networking bandwidth.
NOTE: If you are running the CGI on multiple machines you will need to purchase a license for each machine. Talk to sales@netwinsite.com about discounts for multiple purchases.
WebMail can support multiple groups of users in several different ways. The method you choose will depend on which IMAP/POP and SMTP servers you use, and how they support virtual domains. The first method is the most popular because it allows the greatest flexibility and control.
METHOD 1:
The most powerful method is to use the vhost, vend and ini settings. This gives the greatest amount of flexibility. After WebMail is running on one domain, vhost blocks can be added to your ini file, thus creating settings specific to each domain. If users from domain1 use the url 'http://domain1/cgi-bin/webimap.cgi' and users from domain2 use the url 'http://domain2/cgi-bin/webimap.cgi', both access the same copy of webmail.cgi but will be kept separate by the vhost sections of webmail.ini.
NOTE: The vhost sections of the ini should be at the bottom of the webmail.ini.
A typical example might be
vhost domain1
domain domain1
pophost pop.domain1
vhost domain2
domain domain2
pophost pop.domain2
vendIn the line
vhost xxx
the xxx is matched against the host name in the url. (This is usually taken from the cgi environment variable SERVER_NAME but you can match against anything else - say HTTP_HOST by adding an ini setting 'vhost_match HTTP_HOST')
If the same pophost is to be used but with a username suffix, the above would be changed to:
vhost domain2
suffix /d2
vendor
vhost domain2
suffix @domain2
vendThe vhost - vend can bracket any ini settings and can be applied to any users from that domain. For example, to use different templates for domain1 we might have:
vhost domain2
suffix /d2
templates \webmail\domain2
vendor
vhost domain2
suffix @domain2
templates \webmail\domain2
vend
METHOD 2:
If you only have a few virtual domains, duplicate the WebMail CGI and ini files, and run multiple copies specifying different pophost, smpthost and domain settings. An advantage to using this method is that you can allow each domain to administer it's own ini file.
METHOD 3:
This method will work for everybody, so may be the best option if you are not able to use method 4. In this method, users enter a POP host as part of the login page, either as a separate field or as a part of their username. This requires one of the following to be setup in the ini file:
@pop true
@imap truee.g. username: lynden@domain2
It would also be best to setup WebMail to only allow the mail servers you wish to use. To do this, use the ini setting 'allow_host_login'. This setting can also have wild cards and have many values.
allow_host_login 1.2.3.4
allow_host_login 1.2.3.*
METHOD 4:
This method will work for everybody, so may be the best option if you are not able to use the last method. In this method, users select a POP host to use and enter their username and password. This requires a template change on the login.tpl, changing the host setting to be a pulldown menu instead of a text field.
<select name="host">
<option value="1.2.3.4">Student Server</option>
<option value="1.2.3.4">Student Server</option>
</select>It would also be best to setup WebMail to only allow the mail servers that you wish to use. To do this, use the ini setting 'allow_host_login'. This setting can have wild cards and have many values.
allow_host_login 1.2.3.4
allow_host_login 1.2.3.*
The template files can be edited to provide an interface in a language other than English. In addition, the names of folders such as Trash, Sent, ...etc can be changed using ini file settings. WebMail also has a language file where all WebMail generated messages can be translated. In order to setup the CGI to use this lang file or any other lang file, add the following to your ini file:
lang_file lang.dat
The lang.dat file will contain two lines for each error or message contained in the package. Lines beginning with a # denote comments. The lines look like this:
I23 %d of %d users from %s user directories deleted successfully
Translation of: I23 %d of %d users from %s user directories deleted successfullyThe I23 identifies the particular message. Normally 'I' is used for information, 'E' for errors and 'W' for warnings. The second of each pair of lines should be replaced with a translation into whichever language you wish to use. When editing the line, be careful not to remove the %d %s parts as these are replaced at run time with relevant information. In the example above, the actual message shown might be:
I23: 1 of 1234 users from c:\webnews\u_* user directories deleted successfully
If you are running multiple template sets in different languages, you may also like the INBOX, Sent, Draft, (and other folders) to be translated into another language. In this case, setup the folders in one language, (i.e. English).
i.e.: waste_name Trash
copy_name SentWhen the ||fld|| or ||folder|| is being displayed to the user, use the ||lang||x|| template command. This will take the folder name and do a lookup in the lang.dat file.
i.e.: ||lang||folder||
Next, place the appropriate translation in your lang.dat file.:
INBOX
Translation of: FRENCH_INBOXTrash
Translation of: FRENCH_TrashSent
Translation of: FRENCH_SentOther common folder names can be translated as well if you wish.
In version 2.0s of WebMail and higher, on the item template is the TPL code:
||ifdef||email_charset||
<meta http-equiv="Content-type" content="text/html; charset=||email_charset||">
||endif||The template variable 'email_charset' is being setup depending on the charset setup by the Email message. Due to this, it should not be translated into a different language because it may be labeled with different charset values depending on the message's charset, and so might cause display issues.
WebMail supports the use of user global address books. This allows users (or admin) to setup address books that other users can setup to access. Below are the steps to creating a global address book.
- Select (or create) a user to administer the address book (eg. addresses@your.domain
- Create an address book ensuring that it starts with the name:
pub_
ie. pub_book- Add user's details to this address book.
The above will setup an address book that other users can access if they set their global address book setting on their address book page.
If they enter the name of the user(s) that has the global address book setup inside their 'Public address book' setting, they will then have access to view their address books. A user can enter more than 1 user by separating the names with commas.
ie. addresses,john,ralph
Only the user which setup the address book can add/change fields inside the address book.
If, as an administrator, you wish to make all current users have a global address book that you have just setup, use the managers page (http://your.domain.com/cgi-bin/webmail.cgi?cmd=manager) to set the user variable 'gaddr_books' to the user that you have setup with the address book.
ie. addresses,john,ralph
If you also want all new users to WebMail to have this setup, you will need to add the following setting to the default.dat file in the templates directory (in each template directory). If this file is not already there, you should create it. Add a line like the following:
gaddr_books addresses,john,ralph
WebMail version 2.0g and higher supports the use of external global address books. This allows the CGI to talk to the external program, which in turn talks to the external address book.
The external address book is a globally accessible address book which you can ask for queries. Only the administrator can change and/or update the data. This is normally done with some other external program. Users can only read the information.
The interface and details of the external address book protocol used can be found at: External Address Book.
WebMail versions 2.0f and higher have the ability to auto-login to any other NetWin products which include the auto-login feature. This saves time for the user because he/she can go from one product to another without having to login each time. The password is encrypted and saved in a temporary file on the machine (not accessible from the net), making the process relatively safe.
In order to create links in WebMail which auto-login to another NetWin product, the following ini setting needs to be setup:
netwin_autologin <url> <product directory> <extra>
The <url> is the relative or full url to the other product. The product directory is the workarea directory of the product. WebMail also allows multiple auto-logins, so you can setup multiple ini settings like the following:
netwin_autologin /cgi-bin/webnews.cgi /var/spool/webnews
netwin_autologin /cgi-bin/webmail.cgi /var/spool/webmail
netwin_autologin /cgi-bin/webmail.cgi /var/spool/webmail
netwin_autologin /cgi-bin/cwmail.cgi /var/spool/cwmail &vhost=this_host_name&tpl_set=configThe CGI must have write access to the 'product directory' because an encrypted password file is created which the other product uses for the login.
Once the ini setting is setup, the next step is to add a link somewhere in WebMail (on any template that logs the user into the other product). The links are as follows if the above 'netwin_autologin' ini settings are used (note: the order of the ini settings above must correspond to the numbers used in these urls):
<a href="||action||?cmd=netwin_login-0&utoken=||utoken||">Login to WebNews</a>
<a href="||action||?cmd=netwin_login-1&utoken=||utoken||">Login to WebMail</a>
<a href="||action||?cmd=netwin_login-2&utoken=||utoken||">Login to WebMail</a>
<a href="||action||?cmd=netwin_login-3&utoken=||utoken||">Login to CWMail</a>NOTE: This will only work if the username and password are the same for both products.
Below are the common autologin setup that you can setup with WebMail and how to set them up. Any ini setting changes are also stated it will also have next to the ini file name brackets like '(4th Setting)' What this means is that this is the autologin setting position it is expected to be in. For example the '4th setting' means that their is expected to already be 3 other autologin ini settings in the ini file before these settings.
If the order of the autologin's do change, then WebMail logins will not login to the expected product. If you wish to change the order OR the order has to be different due to already setup settings then you will need to also change the templates commands to also match this.
Note: The versions stated below in each are the version you need to get ALL of the feature stated. Older versions of WebMail will have some of the below but some features will not be avalible without extra template changes.
You need to have WebMail v3.0u build 42 and SurgeMail v1.3h product version for this to work as their are template changes that are already included in these versions, for simple addition of this feature. SurgeMail defaults to use these settings and normally no changes are needed unless you are upgrading from an earilier version. If you are setting up WebMail on a seperate machine to that of SurgeMail or using another web server you will need to do some of the changes below as well.
What this interface does:
- In WebMail on the user configuration page they can:
- Change their mail password.
- Setup Server Spam Settings.
- Setup Holiday Settings
- In SurgeMail the users can move to WebMail without having to login.
Setup:
As long as you have the stated version above or higher all you should need to do is add a few ini settings in WebMail and the interface should work for the default installations. No changes to SurgeMail are needed as it will default to having these settings setup.
WebMail.ini (1st - 3rd Settings)
friends_only true
autorespond true
netwin_autologin http://1.2.3.4:7443/cgi/user.cgi
c:\surgemail\work
lcmd=user_load_pass
netwin_autologin http://1.2.3.4:7443/cgi/user.cgi
c:\surgemail\work
lcmd=user_load_friends&page=na_panel_friends&
wutoken=||utoken||&waction=||action||
netwin_autologin http://1.2.3.4:7443/cgi/user.cgi
c:\surgemail\work
lcmd=user_load_friendsYou need to have WebMail v3.0h and DBabble v1.1m product version for this to work.
What this interface does:
- When you are in WebMail you can quickly move to DBabble web based session sending instant messages to friends and work mates.
- When you are in DBabble web based session you can quickly move to WebMail to read and send emails.
Setup:
For this you need to add 1 ini setting and 1 template line in each product so that you can move between the products.
WebMail.ini (varies)
netwin_autologin http://1.2.3.4:8132
C:\dbabblesvr\workWebMail Template Addition
<a href="||action||?cmd=netwin_login-0&utoken=||utoken||">Check DBabble</a>
DBabble.ini (10th Place)
auto_login_user nobody
auto_login 10 http://$(server)/scripts/webmail.exe
c:\webmailDBabble Template Addition
<a target="||u_top||" href="||action||?cmd=send_auto_login&n=10&tok=||tok||">Read Mail</a>
You need to have WebMail v3.0h and WebNews v1.1o product version for this to work.
What this interface does:
- When you are in WebMail you can quickly move to WebNews read your news articles without having to login to WebNews.
- When you are in WebNews you can quickly move to WebMail read your emails, send a few out without having to login to WebMail.
Setup:
For this you need to add 1 ini setting and 1 template line in each product so that you can move between the products.
WebMail.ini (varies)
netwin_autologin /scripts/webnews.exe
C:\webnewsWebMail Template Addition
<a href="||action||?cmd=netwin_login-0&utoken=||utoken||">Read News</a>
WebNews.ini (varies)
netwin_autologin /scripts/webmail.exe C:\webmail
WebNews Template Addition
<a href="||action||?cmd=netwin_login-0&utoken=||utoken||">Read Mail</a>
You need to have WebMail v3.0h and Netauth v4.2l product version for this to work as their are template changes that are already included in these versions. (Note: See WebMail <--> SurgeMail if you are using Surgemail as your mail server)
What this interface does:
- When you are in WebMail and you move to the configuration page you can select to 'Change Your Password' for the main mail account. This calls NetAuth which is will do the change and then return back to webmail.
Setup:
NetAuth has been out-dated due to SurgeMail, so WebMail templates do not have the NetAuth links and need to be manaully added.
WebMail.ini (varies)
netwin_autologin /scripts/netauth.exe C:\netauth
&show=passwd.tplIn one of the config templates you will need to add this link:
<a href="||action||?cmd=netwin_login-0&utoken=||utoken||">Change Password</a>You need to have WebMail v3.0u build 42 and WebShareIt v1.0j product version for this to work as their are template changes that are already included in these versions, for simple addition of this feature.
What this interface does:
- When you are in webmail and you are writing an email and you wish to attached an file that is stored in WebShareIt you can just click on the 'webshareit' link that will appear on the attachment page where normally you attach a file. It will popup a window which will login to webshareit and then allow the user to select 1 file that they wish to attach. Which is then passed back to webmail, allowing the user to then send the email, and the file will be attached.
- When you are in WebShareIt a new button called 'Email' will appear when you are looking though your folders. If you select 1 file and then clcik this button it will popup window which will login to webmail open a new message and attached the selected file. So the user can continue writing the email and send it off.
Setup:
As long as you have the stated version above or higher all you should need to do is add 4 ini settings, 2 in WebMail and 2 in WebShareIt and the interface should work for the default installations.
WebMail.ini (4th Setting)
display_webshareit c:\webshareit\users
netwin_autologin /scripts/webshareit.exe
C:\webshareit\users
show=webmail.tpl&path=||_webshare_path||WebShareIt.ini (1st Setting)
display_email true
autologin /scripts/webimap.exe d:\webmail
&process=show&page=framenew&
listcmd=share_file&file_path=||send_file_path||
WebMail has a few build in commands that you can run via command prompt. The list of the availabel commands in your current version of WebMail can be view by running WebMail like this:
./webmail.cgi -h
or ./webmail.cgi -?This will then list all the available command like this:
Welcome to WebMail v3.0u Layout: webmail -version Layout: webmail -admin_fns webmail -manager webmail -deleteuser <password> wild_user [wild_user [..]] webmail -checkutoken <user token> webmail -check <user@domain> -version | Displays version Information -admin_fns | This will force the CGI to check for auto-deletion of accounts | and also clearing of checkes of auto-logout accounts -manager | Command line managers control -stats | This will geneate the manager login reports -deleteuser | Command line delete user lists -checkutoken | Check that the user token is currently valid -check | This checks if a user account is active (login session)The '-stats' command is covered in the section 'Setup Webmail to generate more stat information' and will tell you how to setup and use this feature. Most of the others are self explain in their comments. I am going to talk about the '-manager' option.
The '-manager' is the command prompt manager screen with simular features to that of the web base manager. But were the web base can timeout for large system the command prompt does not have this issue. Once you run the manager option you will be asked for the managers password that you must have setup in the webmail.ini file before hand. Then CGI will then load all teh user information in removing and empty users and display a menu like the following:
Welcome To Managers Page (v3.0u build 42) ------------------------ Stats: Located 200 Users in c:\webmail\ 1. Display selected users to screen 2. Delete selected user 3. Change User.dat variables for selected users. d. Delete all old Accounts. (ini setting - auto_delete) c. Clear All Users Caches. (ini setting - auto_logout) f. Delete Users from File. s. Switch user directories from one pop host to another. i. Users Information. (Displays how long since they lasted logged in) u. Delete Users Un-used for x days. r. All the email in user Y's mailbox older than X days are removed. v. Verify all user.dat files - user.dat repairs. m. Move POP folder to IMAP server. q. exitThe number of users on your system will be shown and the list of available options. Each of these options are explained below:
1. Display selected users to screen If you choose this option you will be ask for a wild card list of the users you wish to select. If you enter: 'lynden@*' this will display all the 'lynden' users of every domain that has used this CGI.
You will also be given the option to save this list to a file2. Delete selected user If you choose this option you will be ask for a wild card list of the users you wish to select. If you enter: 'lynden@*' this will display all the 'lynden' users of every domain to the screen. You will then be asked if you are sure you wish to remove these users. 3. Change User.dat variables for selected users. If you choose this option you will be ask for a wild card list of the users you wish to select. If you enter: 'lynden@*' this will display all the 'lynden' users of every domain to the screen. You will then be asked what variable name and what value you wish to change it to. You will be provide a list of common user.dat variables to select from. d. Delete all old Accounts. (ini setting - auto_delete) If you has already setup 'auto_delete' ini setting this option will cycle thought all your users and delete any accounts that need to be removed.
This is normally only used if you just changed the ini settings and wish then to be process straight away.c. Clear All Users Caches. (ini setting - auto_logout) If you has already setup 'auto_logout' ini setting this option will cycle thought all your users and logout the required accounts that match you ini settings.
This is normally only used if you just changed the ini settings and wish then to be process straight away.f. Delete Users from File. This option allows you to import an external file which list (one on each line) the users you wish to remove. This option will login this file display the list of users to you and ask you are you sure you wish tyo remove these accounts. s. Switch user directories from one pop host to another. If you are moving your users to another POP/IMAP server or even a different domain, you will need you use this feature. This will convert all the users in webmail to the new POP host. You should use this option with care, if this is not used correctly your users might lose their settings. i. Users Information. (Displays how long since they lasted logged in) If you choose this option you will be ask for a wild card list of the users you wish to select. If you enter: 'lynden@*' this will display all the 'lynden' users of every domain that has used this CGI.
This will then tell you when they last login adn give you the option to save this to a file.u. Delete Users Un-used for x days. This will allow you to delete users depending on when they last used WebMail. You will be display the list of users and asked if you are sure that you wish to delete these accounts. r. All the email in user Y's mailbox older than X days are removed. This option only works for POP folders, allowing the admin to remove emails that have been their for some time. v. Verify all user.dat files - user.dat repairs. This will cycle though all your users and verifying the user.dat and repearing any damage that past CGI might have caused. You will be display a list of user.dat that have been repear. m. Move POP folder to IMAP server. This feature allows you to move all the POP folders stored on the web server to be uploaded to the IMAP server. This is only used if you are moving all your users to your IMAP server, and which to move the POP folders as well.
If you are using WebMail v3.0u or higher you can set it up to use GnuPG. For more information about this product see the URL:
http://www.gnupg.com/
The software for safe and encrypted e-mail-communication. GnuPG is published under General Public License (GPL) and therewith a free software alternative to Pretty Good Privacy (TM), shortly known as PGP (TM). GnuPG is based on OpenPGP-standard.
To setup WebMail with GnuPG you first need to download GnuPG, compile and install in on your system. Due to the way GnuPG interfaces with the console, changes are needed to GnuPG to made so that webmail can correctly run gpg correctly. So before you build GnuPG you will need to replace '../util/ttyio.c' with the one provided here.
Windows and Linux Libc6 compiled version can be downloaded from the table below.
Windows (gpg.exe) Linux Libc6 (gpg_netwin) This is just the gpg.exe you will still need to download the orginal GnuPG and install it.
Once install you need to add to webmail.ini file the following:
pgp_path c:\pgp\gpg.exe
or pgp_path /usr/local/bin/gpg_netwinThis will then activate webmail pgp code and on the Panel tpl set on the 'Option' page. This new option called:
PGP Profile
This will give you the option to generate a new Public/Private key, which is then used when sending emails. This will also list teh current Key that other users have sent you. On the 'New Message' page at teh top a new pull down menu will apear giving you the option to send your key or sign the message using yor key.
Warning: Since GnuPG is 3rd party software, Netwin Ltd is not liable for any damage caused by the use of this software, or any licensing requirements.
WebMail v3.0t and higher has more stat information that you can collect and use. The main information that customers want are:
How many emails were sent this month.
How many logins occured this month.
- Also A break down of how many times each user login.
How many times a template page was displayed. (ie login.tpl, options page etc)To set up the above you need to add the following ini settings:
# How many emails were sent this month.
log_sent_emails true
# How many logins occured this month. (Including break down)
log_login_users true
# How many times a template page was displayed
log_template item.tpl view_email
log_template login.tpl login_pageThe stat information is display on the managers page at the URL like the following:
http://your.domain.com/cgi-bin/webmail.cgi?cmd=manager
All this information is stored in WebMail's workarea, each in a seperate file. You might need to manually remove old files if they start taking up to much room.