Products Downloads Prices Support Company
DMailWeb and CWMail
Common Links
Download Now
Customer Comments
Example Gallery
WAP/WML Support
CWMail Links
Email Support
Users guide
DMailWeb Links
Email Support
Users guide

Update Information on DMailWeb and CWMail

The following table contains information on the latest versions of both DMailWeb and CWMail. The table is in reverse order with the latest versions at the top. New versions may appear in the DMailWeb/beta directory prior to full release. If there is not a current build of the latest version for your operating system please let us know by sending email to or

Version Date

New Features and Bugs Fixed

2.8e 3rd October 2002

  • Fix processing of & and ! in url's embedded in emails
  • Fix work j-z /otherworkdisk so it includes users z... it was doing j thru y users
  • Fix bug introduced in 2.8b which caused some users to randomly see invalid token errors
2.8d 10th July 2002

Beta Release

  • fixed bug in remote message fetch which could cause the wrong error message to be displayed when user disk quota is exceeded.
  • two other fixes for disk quota related bugs.
  • fixes for various crashes
  • security fix to avoid potential for cross-site scripting attack.
  • ||sig|| is passed out in send template now.
  • ||q_body|| can now be used to check if there is a 'message body' to quote i.e. a reply.
  • fix for error.tpl displaying mail list link when it should have displayed a login again link
  • fixed file handle leak in the manager code.
  • fix for forwarding related problem
  • fix for missing attachment links when inline images turned off.
  • enabled use of 'docmd' globally from any form.
  • fixed wrapping of really long To: headers
  • changed cmd=saveconfig to always lock. Fixes error creating new user with slow pop server.
  • fixed loss of attachments in forward_edit with header only cached messages.
  • increased the limit for max. messages in inbox..

New commands/ini settings.

  • 'stdin_timeout xxx', where xxx is the default timeout in msec. for reads on stdin (windows only)
  • 'verify_diskuse true' to help debug disk quota issues. Recalculates diskuse from files present, compares this to the value stored in user.dat and reports and discrepancies in the log file.
  • 'html_disable true' to disable the display of html in messages.
  • new log option 'log base64' to log encoding/decoding of attachements.
  • 'show_trash true' to override automatic hiding of trash folder when no_trash is true.
  • added cmd=pick_del to easily clear a users pick list.
  • 'quote_attached false' which when set will stop ||quote_body|| from quoting attachments.


2.8c 16th April 2002 Second Release Candidate. Fixes problems found in the previous beta 2.8b...
  • updated Sender: header to remove extra domain with poplist_reply true.
  • stopped cmd=menubar from locking user.dat, causing mail not to be checked in dmailweb on login intermittently.
  • changed ||fldlist|| so that it doesn't link to trash with no_trash true in ini file.
  • changed ||h_pri|| so that if there is a valid Priority: header it always gets set.
  • changed cmd=show so it will not lock if page=menubar
  • updated cwmail default frames.tpl to use cmd=menubar instead of cmd=show&page=menubar
  • make sure we get lock on user.dat when setting custom user.dat entries.
  • changed show_article_part so nested end mime boundaries won't break decoding of attachments. Introduced in 2.8b and affected attachments sent by Outlook Express.
  • fixed two bugs in the new send_wrap implementation.
  • command line -version option now shows build number.
  • new ini setting 'no_hr true' to stop <hr>'s being put into cmd=item output.
2.8b 19th March 2002 Bug fix beta release. It addresses problems with...
  • email not being checked on login in some cases.
  • forward edit. To make it deal with attachments correctly. It is now the default forwarding method for new installations.
  • send_wrap which could wrap messages incorreclty in some cases.
  • empty folders being left around when new user logins fail.
  • a few user set checkboxes which had lost their 'stickiness'.
  • rejecting email from users with long email addresses.
  • a malformed email causing a user not to be able to download other messages.
  • loss of user.dat file in some situations.
  • multipart/alternate display of some messages.
  • mime attachment decoding when using footers added by smtp server outside of the mime parts.
  • cookies not being set correctly.
  • the read flag not being set on the next item displayed after a delete from the item page.
  • static utoken generation with no_tcode true on some unix based systems.
  • non display of some attachments following html mime parts.
  • page numbering in when deleting lots of messages.
  • a couple of potential crashes.
New commands/ini settings.
  • Added cmd=reset_rejected which reset a users rejected messages count on the filter rules config page.
  • Added new ini setting 'poplist_reply true' which uses default reply address for primary pop address in ||poplist||
  • Changed default behaviour of utok_cookie false, to not serve utok as well.
2.8a 30th November 2001
  • fixed bug which meant vhost lines with trailing whitespace characters didn't work
  • updated default fwdedit(f), sp_show and sp_edit template files so form entries aren't lost during spell-check
  • added new template variable ||vhost_port||, needed when using vhosts and your web server isn't running on port 80
  • fixed automatic cc, copyself and add signature checkbox behaviour, that had been broken previously
  • added ini setting for smtp server authentication, smtp_auth true
  • fixed forwarding of attachments with cmd=forward_edit and updated default fwdedit(f) templates to give users the option of whether or not to forward attachments
  • added new ini setting diskuse_on_logout true which recalculates users diskuse when they logout
  • added ability to set sort order to arrival from the list page e.g.
    <a href="||b_action||?cmd=saveconfig&sort_on=&utoken=||utoken||&fld=||fld||">Arrival</a>
  • added ini setting 'no_new_users true' which disables new account creation
  • added ini setting 'dump true' which allows dumping of environment/stdin to files, dump.env and
  • added command line option -test to compliment 'dump true'. CWMail -test will run with the environment from dump.env and use the file for stdin
  • added new cmd=raw option to display an entire item in plain text. Substitute for cmd=item in item URL
  • fixed bug with truncation of long item lines
  • extended body_add functionality...
    body_add ~command - will spawn 'command' append it's output to every new message
    body_add @file.txt - will append the contents of file.txt from the templates directory to every new message
  • fixed bug so existing users will get correct folder names if admin adds/modifies them via the ini settings new_mail_name, waste_name or copy_name
  • fixed bug when forwarding multiple messages with both mime and non-mime content, that could cause the item body to be lost
2.7t 2nd October 2001
  • When CWMail shows attachments within a message it put links of the form
    the /people.gif bit in the middle is just to help some browsers know what filename to use if you ask them to save
    BUT some webservers dont like a url like that.
    a new ini setting no_slash_filename lets you turn this feature off if your webserver needs you to do that.
  • Ignore leading quotes in comparisons for sorting message lists on from address etc.
  • Allow $(pophost) in dflt_reply setting in user.dat
  • NOTE: if you are setting up multiple pophost settings in the cwmail.ini for vhost sections dont use an orginal_pophost setting as the two settings are incompatible.
  • Add pre ini read logging  so if something in cgi goes wrong before ini file has been read it can still be logged.
  • Compile for  sco unix.
  • Add :port to ||server|| template variable if port is not 80 so you can run easily on a non standard port.
  • Serve sort_on variable in all templates and sort_field and sort_direction note last two in lang.dat so can be translated for foreign languages.
  • Template changes to serve "caller" and "return-url" for link to NetAuth DMailWeb etc. So that they know what called them and can have a "return to cwmail" link on their pages. Note the same technique could be used for other third party pages or cgi's which will be used with CWMail
  • Fix problem with autolink back from NetAuth. Note you need current versions of NetAuth and CWMail to make this work again.
  • Added ||h_date_mn|| template variable to give month numeric 1 to 12
  • Serve h_date_time and t24 in item init so for all templates displaying a message.
  • Serve h_date_day and h_date_d h_date_y and h_date_m variables in item as well as list pages
  • If extra variable defined in form in auto_login starts with a , dont put an & before it in location url
    This is used to make links to neauth DMailWeb with caller and return url information passed to them
  • Added a return button in DMailWeb list page similar to CWMail link at bottom of list page but using
    the passed caller and return variables.
  • make utokc cookie expire after auto_logout_mins WAS FAULTY NOW FIXED
  • Move change of . to _ in global address book open to after getting user directory so this works with an original pophost setting.
  • Fix address books with 1k+ entries and pick_abook_max > 500 ish - was being truncated at about 500 entries.
2.7s 2nd August 2001
  • Added more meta tags to stop cacheing of login page.
  • Allow page=xx with any command.
  • Added a  process=x so you can do cmd=x&process=y&page=z note this in not generic but will work in most places.
    Sequence followed will be do command x but dont show the normal page it would display. Then do command y
    if no page= display its normal page else display page z.
  • Provide language translation of  "form tag removed" "script tag removed" and "app tag removed" messages
  • Improved get_date in sendf.tpl to use users browser date for sent message.
  • Fix bug with large ||include|| and large pick list.
  • Fix bug causing crash if checksum error on user.dat on unix
2.7q 5th July 2001
  • Spell check problems with large message fixed: On NT lost all but first 512 bytes of message -fixed.
    On unix spell check of large messages caused server error - fixed
  • Improved handling of POP responses for faulty POP servers that start some error replies without the -ERR prefix
  • Changed max address books to 20
  • Fixed goto page x on list page in another folder - always went back to in box added fld=||fld||
2.7p 26th June 2001
  • Don't loose the to field in spell check if message is to self :-)
  • In tidying up reply list in replyall if we end up with nothing leave it alone :-)
  • obey page= on forward edit and forward
  • added h_cc and h_bcc to "your messages to ..."  sentok message
  • Added a_cc similar  to a_from,  a_reply etc.
  • Fixed bug causing occasional crash on solaris
  • Stupid IE does not recoginise &apos; but wml browsers need it so only do it if in wml mode
  • Fix bug with hrefs in emails with @ in them.
  • Set  ||logged_out|| so they get login again option in error.tpl
    for cookie expired and bad utok errors.
  • Fix it so wap doesnt chop for bodylimit in middle of &#nn; sequences
  • Fix bug which occured on some systems if user  had more than 10 folders
2.7o 7th June 2001
  • Change default to tcode true. Note if you want to login from a fixed login page (rather than normal generated one) you need to add ini setting no_tcode true to .ini file.
  • Keep old tcodes for longer to prevent cached logins.
  • Added new template variables
    h_date_d 1 to 31
    h_date_y 2001 etc
    h_date_m jan feb mar etc.
  • Dont use &#34; use &quot; and &apos; instead as some wap phones or gateways dont like it.
  • Change ini setting set_charset now defaults to true; Used to set special charset for displaying foreign characterset messages.
  • New template variable ||charset|| set by charset in content-type in msg header use in item.wml
  • Set u_eight_bit if phone is nokia7110 or 6210 so they show greek characters properly
  • If u_eight_bit if set in user.dat then dont turn chars greater than 127 into &#nn;
  • Added encoding=||charset|| in item.wml in xml line to force special encoding for greek in wml
2.7n 18th May 2001
  • Fix bug in address book lookup, with two entries like ph=fred and aph=bill  then it would find aph when it should find ph
  • When myfrom true on forward remove cc from original message
  • Ignore case in address book sort
  • Added nosortaddr user option for config page. default false
  • In wml mode $ in a message is now turned into &#36;&#36; as need $$ to represent a single $ symbol
2.7m 8th May 2001
  • Unless new ini setting empty_passwords is true immediately reject an empty password field.
  • In show item for wml dont put in quote body char and dont put in br in quote body
  • New ini setting no_cmd_url  if true stops it using cmd=url url= for http links in messages as that seems to fail on  some web servers
  • Fixed bug which mucked up boundaries between multiple attachments
  • DMailWeb item.tpl change http:// to ||http||
  • Add into purge on manager page option to kill accounts unused for x days. USE WITH CARE   - NO UNDO
  • Fixed bug v_exec true on item page was seting v_asis 
  • Make max attachment limit total of all attachments rather than individual attachment sizes.
2.7l 5th April 2001
  • Added  new ini setting pop_busy if this string is  found in pop login error message then wait 1 sec and try again
  • Added new ini setting pop_retry default 1 - how many times to try again for pop login
  • Fixed bug - If remote_body header flag is lost then regenerate it and warn user.   ie if we find an "I9: cached message body..."  as a message body then set the rbody flag so it auto fixes it.
  • Allow vhost= in queries. So they can have pull down list of domains in login.tpl
  • Fixed bug in handling of base64 encoded html attachments. Remove spurious end of line chars.
  • Fixed bug - must try and lock even for show item as may need to update diskuse.
2.7k 29th March 2001
  • Added new ini setting fix_from true/false default false. If true then when sending email any chages to reply-to field are only used for reply_to header within the message, they are not used in the from header, either on the envelope or inside the message headers.
  • Fix bug recently introduced which messed up diskuse figures. as in disk_use_kbytes used on login page.
  • Recalculate disk_use figure on show folder list command.
2.7j 28th March 2001
  • Added ini file option to set streaming of top commands to pop server.
    stream_max n with default of 1
    by sending more than 1 top command at once better response time is provided when a large number of new emails are present. BUT some POP servers can't handle this! A good place to start is 10
  • Log serving of gif images via cgi
  • Allow an option in auto_login ini lines. If extra starts with a , append it directly to cmd=autologin thus
    - for autologins records in ini file if extra starts with comma putit in as is right after
    auto_login 1 netauth.exe $(workarea)/../netauth show=passwd.tpl ,fwd1
    will send ...netauth.exe?cmd=autologin,fwd1&user=username&pass_file=workarea
  • Added an auto rebuild of index of folder if messages there but no index.dat - this was so sysadmin can kill some message and index files himself with a problem.
  • Allow saveconfig hidden variable in login.tpl to allow login and saveconfig all at once so you can
    enter real name etc etc all on login page if you want to.
  • Fix bug causing multiple attachments to not be displayted properly in some situations.
    Multiple attachments one html which is not the last then folowing ones are lost and html is corupted if inline images is on.
  • Fix bug delete of address book was not being saved.
  • Accept auto_cc in forward.tpl as well as in send
  • Fix bug in install of WAPMail option
  • On a checksum error and create new user.dat tell them it was checksum error and old settings saved as user.lost with checsum flag removed so sysadmin can be rename it   user.dat to restore old settings.
  • Fix bug in log send so that all outgoing commands are logged, including top, stat etc.
2.7i 13th March 2001
  • Read pop_cur on config save as well as list so you can set default pop host on config page.
  • If use myfrom set on forward then remove date header put now as date and dont add a resent_date
  • Don't delete files for new user with bad password if they already have an inbox - not that that could happen :-0
  • Rewrite locking routines: Limit force user lock to just login and logout. On the rest we try and set readonly if we don't get lock
    add new form variables must_lock and read_only to force readonly or lock on a command.
    make item command read_only ie no lock needed.
    ini setting nfs true for shared nfs drives as need different lock mechanism.
  • Tidy up sending for obscure solaris send bug
  • Fix bug causing unecessary rewrites of user.dat
  • On auto add to address book we only add addresses we "send to" for pick list we add from addresses also.
  • Serve out autoadd and autoadda variables in all templates = checked or empty
  • Add new log options send and form
  • New testing ini settings
    pause n           pause for n seconds after getting a lock
    pop_delay  n    make pop response delay by n seconds
    lock_force_wait n wait for n seconds before freeing a lock
    nfs true/false    if true use nfs style locking
    lock_wait n       wait this long for a lock before giving up. default to 5 secs
  • Documented original_pophost setting
2.7f 1st March 2001
  • Add log send option and more error logging to send function
  • Fix bug with % in address book causing death of cgi
  • Added to registration form request for information on worst feature or most annoying aspect of product to help in continuous improvement plan.
  • When saving rules miss out empty ones  ie those with no rule or nothing to search for.
  • Change cgi and templates for config and login to use setcookie instead of set_cookie as now set_ in a variable name means set the following variables value  ie set_fred sets variable fred. This was stopping auto-login from working on latest versions. Another work around without changeing cgi was to change variables in templates to  set_set_cookie   
  • Added an ini setting lock_old secs. default is 300   Lock files older than this are ignored. ie this sets time to free an account after a problem. Too short and it may just be a slow pop server or slow link to user. To long and you have to wait a long time for an account to free up.
  • Make default for lock_wait 5 secs. If cant get a lock in this time return an error. Saves having many cgi instances waiting for locks.  Too small a value will produce cant get lock errors. Too long will increase load as multiple copies of cgi can be waiting for a lock.
2.7d 23 Feb 2001
  • Added more error logging for log dotlock option
  • DMailWeb builds other than nt and linux were missing the wap .wml files
  • Fixed bug ||set||fred||bill|| did not work unless it was at start of a line :-(
  • Fixed bug with line with " in it in new message on return from spell check it produced extraneous output
  • Fixed bug if using  language  translation then rule action of move did not work, others did
  • Added a log option of rules
  • When retrieving headers such as subject allow for embeded CR character
  • Fixed bug with translation of the names of headers, if there is a translation only use it in display, dont use it in matches as header names are always in english inside messages.
  • If to field is set in send.tpl  serve a_from as well as an h_from so click on email link inserts to field correctly
  • Fix bug causing print button in item.tpl to fail on some systems. in printwin we had ||http||||server||/ + url / was wrong - deleted it now we have var nurl = "||http||||server||" + url;
  • Trap kills from webserver so we dont leave files locked on attachment download aborts. Saves users waiting 5mins for lock timeout.
2.7c 12 Feb 2001
  • Give better error when cookie based utoken not found
  • Change to  require_cookies false for new installations as causes problems when testing with flaky browsers
  • Fix bug introduced in 2.7b with new message command
2.7b 8th Feb 2001
  • Fixed HTTPS bug. When serving image attachments make url use https rather than http when running from secure server
  • Updated locking. When locking user files wait just over 5 minutes for lock and consider files more than 5 minutes old dead.
  • Added template variable h_isforwarded which is set when  message is forwarded.
  • For addresses in pick list increase max length of an address from 90ish to 255
  • Note with some web servers where ||server|| is not set correctly you can replace this in templates with ||vhost|| and use the ini setting match_vhost HTTP_HOST to force the correct name to be used.
  • improve random generation of utokc cookie
  • When cookies are domain specific make them use domain=g_vhost rather than the server_name
  • Updated ||do description in manual
  • Allow cmd=delsel in post as well as query
  • Add ||logged_out|| and use in error.tpl to say login again rather than mail list if logged_out is true
  • WAPMail price change
  • When license is unlimited say so rather than limit is 0 users as it confuses people :-)
  • Change error message so expired utokc gives expired error and doesnot die on logout request
  • Make http: links in emails terminate on > as well as other seoperators
  • Stream TOP commands when talking to POP server to speed processing of large numbers of emails.
  • Changed time sent to browser for cookie expiration to gmtime rather than localtime as browser assumes gmtime
  • Added ini_setting read_flag default value of O for opened, some servers use R for read and will need this
  • Set nnew_sl = 0 AFTER getinfo on login.
  • Fixed bug. When forwarding multiple messages with added note only first line of note went with
    those other than first message.
2.7a 15th Dec 2000
  • Added new ini setting extended_index true/false
    if its false which is default then message indexes are compatible with earlier versions. but status header is not saved and hence cant be used for determining message read status from pophost.
    If its true (default for new installations) then returning to version 2.6k or earlier will cause a crash
  • Fixed bug which prevented adding a child from another vhost domain which used @ in suffix
    You can now provided parent adds childs full email spec in form child@domain@pophost
  • Added new ini setting fld_maxlength default 14
    limits the length of foldernames accepted by f_newname used in folder list
  • Added an no_sender ini setting default false if true dont send a Sender header in emails
  • Fix bug which caused extra blank rule lines to be added on every save on some foreign languae systems
  • Fix bug which caused some attachments with chinese file names to be unclickable
  • b_send works again - it got broken in a recent release
  • Extend wait for  getting a lock to 5 mins to allow for opening ver large inboxes on slow pop servers
  • Fix bug (added in recent version :-) which prevented set_passn being picked up  - ie stopped poppassd password change link from working
  • Make cookies domain specific unless they add ini setting  no_cookie_domain true
  • If myfrom true then remove reply-to and to as well as reply headers and change to field to recipient rather than forwarder
2.6z 23rd Nov 2000
  • If child save fails remove current child from list of  children
  • Added template variables for selected rules for actions eg copy_sel = "" or "selected" this allows reduced sets of rule options to be provided. eg copy allowed but delete is not.
  • Don't allow children to be parents :-)
  • Fix bug causing token error for new users coming browser with another user logged in.
  • Force saved username for main pophost to the one used on login
  • Fix error writting checksum endofline to user.dat - prevented first added setting from being seen eg child
  • When appending to user.dat always add line to turn checksum check off      ----     has_checksum 0
  • Fix problem displaying multipart non mime message
  • Set ||http|| variable to http:// or https:// based on HTTPS=on env variable  - was based on Protocol env variable which is often set to http when its really https
  • Save users check all pop hosts setting    - lost save in version xxx ???
  • Remove more illegal chars when printing to wml and replace with #
  • Don't print the href to go with click here to login again message if lang trans < 5 chars   - so lang.dat  can be used to remove the link altogether if desired.
  • Don't forward status headers - as they are meaningless on a forwarded message.
  • Make  compare for  fwd: from message  case independant
  • Add an ini file log option  for log query_string
2.6y 8th Nov 2000
  • Add ini seting no_checksum  default false to stop it doing checksums when reading user.dat so third party software can add settings to user.dat without worrying about checksums
  • Rename PasteAdd to  pasteadd in forward.tpl etc to avoid confussion
  • Changed body_add to to avoid customers customes emailing us for support
  • Added ini setting set_status which can be used with rset true to make it to only download headers and use rset to stop them being set as read. and then download body on read without rset so that we set the flag properly
  • Added ini setting read_status should be used with keep_index false to make it always reload message index and headers from pop server so that we see changes to message read status header. It sets our flags read flag if status header contains O for opened.
  • Return blank utoken if action results in logged out so it can be used in error template to remove mail_list options if logged out.
  • Make the "this message was too large to download..." a lang.dat changeable message
  • When chunking message on wap phone dont go back more than 16 chars when looking for a word space
  • Don't put an end of line after ... in roffset    In template use paragraph tags round body.
  • Added a cmd=lg&url=xyz which does logout and go to url using location: header 
  • Added next section link for chunked bodies to item.tpl
  • Added a limit_list ini setting default false. If true then when serve list of message stop when body_limit chars served. Usefull for wap browsers with small storage space.
  • Fix bug in body_limit calculation which was unecessarily conservative in stoping.
  • Add template variables bn and bp for roll your own bnext bprev tags.  They just contain item number so you can use ||b_action||?cmd=item&item=||bn||etc     needed in wap templates to conserve space.
  • Do address book and local address add domain on to and cc before putting in sent message header.
  • In a_from and a_reply  use a tidyup which removes nicknames < > etc from address so they can be used in .wml templates.
  • If user.dat lost message try a rename user.dat to user.lost just incase it has some stuff in it that sysadmin can recover
  • Fix bug wml_page_size and page_size set on login template was not being saved on login
  • When we find query or form variables called set_xxx then as well as setting variable xxx
    change form or query name to xxx so if its u_ it will get stored and overule value from user.dat
2.6v 17th October 00
  • Added new ini setting lowercase_pophost ini setting
  • Added  nosortpick user option default false. Serve ||nosortpick|| Set from config page
  • Added new template variable h_from_trim2 like trim but if it ends up as ralph@mcduff return just ralph
  • Note v_myfrom is read from forward.tpl so if not a tick box and want default true then you need to make it a hidded field
  • Fixed pophost=mailhost on login does not give error sorry this ... if force primary true
  • Added example match and highlight lines to ini files and listf.tpl
  • Allow match from "!ralph" to invert sense of ini match line
  • Note in match header string ini setting  _flags fake header can be matched for read,unseen,new,file strings
    match _flags "!read" tread bgcolor=#220000
    could be used to hilite unread messages
  • Added to log ini file options: cookie   log options available now are:
  • Add ini setting no_rename. Default false. If true we  assume renames are not safe ( for example on some nfs drives with multiple hosts) and use an alternative method for updating user.dats
  • Added checksums to user.dat reads writes
  • Fix some bugs in handling errors when reading user.dat
  • Dont use cmd=url&url= inside attachments and html messages - caused other problems and not really needed.
  • Changed to refresh... meta tag instead of location: for cmd=url as original referer information is still passed for location header
  • Make utok_cookie true by default - update docs, ie in general use cookies for utokens where possible in preference to storing in href.
  • Also terminate http: ref on  " character
2.6u 4th October 00
  • Added new ini setting require_cookies if set it uses cookies for utokens and requires utokc cookie
  • Updated locking code for solaris nfs shared drives
2.6t 3rd October 00
  • Add further security options to protect against stealing referer url when from ip check can't be used.
  • Implement noscript and noform etc checks in multipart mime messages
2.6s 29th September 00
  • Fixed bug causeing rubish characters on list page when subject contained %%
  • Demote cant remove error in rebuild index as is often normal behaviour
  • In quote_body dont show html sections of multipart mime messages
  • Allow choice of (previously selected set) on login page  for template set to use
  • Use language transaltion even if we dont know user yet. ie errors on login
  • Fixed bu  with mutipart alternate followed by text part in mime. It was not displaying following text parts
  • Added new ini setting for fixed_folders which cant be deleted. It is a wildcad list
  • Added new cmd cmd=url&url=xyz
  • Make hrefs in emails use the command above
  • Fix bug in ||quote_sbody|| as used in sendf.tpl for editlive
2.6r 19th September 00
  • modified utoken generation
  • Remove unecessary lock messages in solaris
  • Added command rejsel like delsel only also adds from  address to reject_from list
  • Serve ||reject_from|| on list page as well as config pages
  • Added annotated user.dat user_dat.txt to help people setting up default.dat
  • Increase max messages in a folder to 5000
  • Fix bug which prevented use of & in usernames
  • Added new ini setting no_delete xyz if set then delete rules with contains in xyz are rejected
    so sysadmin can prevent filtering of messages from important people ( like sysadmin :-)
2.6q 11th September 00
  • Fixed problem with file locking on solaris nfs drives
  • Fixed loss of mail body on forward of multiple mails some with multipart mime and some without
2.6p 8th September 00
  • New ini settings and support for cmd=send_auto_login. This allows transfer between cwmail,dmailweb,webnews,netauth,webmail,webnews and DBabble with auto_login provided same authentication method is being used. The  new listf.tpl has links to these other products at the bottom of the page which will work if the other products are installed on the same server.  The sample ini settins added are:
    auto_login 1 netauth.exe $(workarea)/../netauth show=passwd.tpl
    auto_login 2 webnews.exe $(workarea)/../webnews
    auto_login 3 dmailweb.exe $(workarea)/../dmailweb
    auto_login 4 webmail.exe $(workarea)/../webmail
    auto_login 5 $(server)f:4141/cgi/dbabble.cgi $(workarea)/../dbabblesvr/work
    with the following calls in listf.tpl:
    <a href="||action||?cmd=send_auto_login&n=1&utoken=||utoken||&&">Netauth</a>
    <a target=||top|| href="||action||?cmd=send_auto_login&n=2&utoken=||utoken||&extra=frame%3D||frames||&&">WebNews</a>
    <a target=||top|| href="||action||?cmd=send_auto_login&n=3&utoken=||utoken||&extra=frame%3D||frames||&&">DMailweb</a>
    <a target=||top|| href="||action||?cmd=send_auto_login&n=4&utoken=||utoken||&extra=frame%3D||frames||&&">Webmail</a>
    <a target=||top|| href="||action||?cmd=send_auto_login&n=5&utoken=||utoken||&&">DBabble</a>
    $(workarea) translates to cwmail/dmailweb workarea
    $(server) translates to something like ie http or https and server name
  • Accept $(user) as first part of dflt reply and change into username
  • Fix bug with smtp_port ini setting not being used in some situations
  • Added new template variable ||http|| taken from start of env variable SERVER_PROTOCOL upto space/cr etc either http:// or https:// or wml://
  • Added cmd=fld_create so it can be a query or a post
  • docmd is now ignored if we are trying to display an error
  • Improve error reporting when key fails
  • Better key support for server farms
  • Fix file locking problem occuring on some solaris versions
2.6o 22nd August 00
  • Use ilayer in item.tpl to make netscape show background images in html messages
    - still no equive for ie
  • Line too long wrapping demoted to debug message instead of error message so user does not see it
  • Improve key handling for server farms
2.6n 14th AUgust 2000
  • Remove redundant <pre> /pre> tags when not printing text part of multipart alternate message with text and html versions.
  • If  =cid:nnn  in html section of multipart mime message and have a mime part matching put in link to it.
  • Make links to embeded images absolute so that base settings in html dont stop them working.
  • Don't display text part on multipart alternate even if not inline images set
  • Change default to force_primary true for security reasons. Note this will mean to use pophost field on login page sysadmin has to set force_primary false in ini file.
  • Fix bug causeing loss of setting for delete from server for main pophost when user enters wrong password.
  • Fix bug causeing occasional checking of wrong key  on large systems with CWMail and DMailWeb installed.
  • Added new ini setting
    match headername matchstring variablename htmlvalue
        eg. match from @netwin fromnetwin bgcolor="#EE0000"
        would create a template variable ||fromnetwin|| with value bgcolour="EE0000" on lines in listf.tpl
        which have a from header containing string @netwin
  • In non frames fwdedit.tpl remove defaults for to cc and bcc as generally not wanted
  • When forwarding if they have usemyfrom ticked remove sender header as well as from and reply headers
    and remove original reply header
  • Allow multiple rules to process the same message - unless action is delete :-) so make delete last one :-)
  • Fix problem caused in 2.6m which changed nnew calculation. We now have  nnew_sl which is number of
    new since last login and nnew which is number new on this check which is used for beeping on new mail
2.6m 20th July 2000
  • Limit address book names to 100 chars
  • Don't try and display inline images in wml mode
  • Enforce limits on rule fields.
  • Added new template variables a_from and a_reply which are address only part of h_reply and h_from these are used in send.wml as wml cant handle the "name" form
  • Added if child address entered withour host then @pophost ini setting is added to form full child address
  • Fix bug with forward and added note of multipart/alternate messages.
  • Remove x-uidl on forward
  • On forward don't put in resent-cc if its blank
  • Show a forwarded by x to item.tpl and a new template variable h_resent_from  to support it
  • In forward with added note if original message was multipart say forwarded message is in next mime section rather than forwarded message follows
  • Fix spell checker to work with arabic dictionary
  • Fix display of simple base64 mime text/html message - it was showing up as an attachment instead
  • Note nnew is number of new messages since login. This number is reset on login and incremented on each check mail.
  • Added new template variable ||fuser||  Note: ||user|| has no prefix or suffix and ||fuser|| has full user with sufix or prefix
2.6k 6th July 2000
  • Default .ini files now have force_primary true This forces users to login to primary pop_host first
  • Don't read wrap messages inside a &#nnn; sequence as it upsets some wap phones
  • If utoken not available just go to login page
  • Fixed bug in nhash 2  username hashing both : and / encoded as _J now using _0 for :
  • Removed +++ extra debug error messages left in 2.6j
  • Speed up response to incorect or invalid login name
  • When html encodeing template variables encode " as &#34; so it will not terminate a="||variable||" in javascript. This was causeing reply screen for frames version of CWMail to show strange sequences when used with editlive capable templates and messages which included a " character.
2.6j 21st June 2000
  • Fancy erikson r380 templates added fro WAPMail
  • Fix bug - h_subject_n truncating in middle of &#nnn; string
  • Increase MAXATTACH to 4
  • *** Added functions to allow user to move from within CWMail to other web pages and then return without
    logging in or keeping utoken
    In ini file add setting utok_cookie true
    - then we serve utoken as a cookie on login with a 1 hour timeout and accept in queries and posts without utokens
  • Added command line use of CWMail thus cwmail.exe -ini inifiletouse
  • Allow command line -query "cmd=login&user=username&pass=password" returns +ok utoken or -err message
  • Allow command line -query "cmd=check&utoken=tokentocheck" returns +OK or -ERR
  • no_tcode true added to default ini files as ie5 doesnt refresh home page even if told to
  • Added allow. ini setting to allow . in usernames.
2.6i 12th June 2000
  • Fix problems with user.dat locking
  • Add log  user_rw,locks ini settings
  • Added ini setting no_locks to disable user.dat locking
  • Fix editlive.tpl and sendf.tpl to fix javascript error when no editlive and return to non wysiwyg mode
2.6g 9th June 2000
  • Honour body limit in text part of multi part mime messages
  • Serve out ||user_dir|| for all templatess where user is known
  • Don't allow multiple lines in username and password passed to POP server
  • Limit length of username and password to 230 chars
  • Added delay to lock free
2.6f 7th June 2000
  • Fix bug popall setting was not saved in  user.dat
  • Fix bug iso true was not being honoured in wml mode
  • Unix version of WMSetup was not copying editlive.vbs and editlive.js into nwimg directory on web server
  • For wml mode and multipart alternate with text and html just display text version
2.6e 31st May 2000
  • Add ||quote_sbody|| for html version of ||quote_body|| which looks for ||sbody||
  • Fixed forward and delete "cant find uidl..."  error
    serve real_name in all templates
  • allow page=xxx in cmd=checknew and list
  • Improve file locking for shared nfs drives
  • CWMail frame version allows user to use a wyswig editor and editlive plugin for send message
    sends as multipart/alternative
    Needs editlive.js and editlive.vbs in /nwimg and calls editlive.tpl|
    automatically provides link to download or register editlive as needed
  • WAPMail option included in download
  • Update .wml templates and add special set for Erricson R380 automatically selected on login
  • Assume register for WAPMail is done from html browser
  • Allow $templates at start of tpl_set n  ini setting. Eg
    tpl_set 2 $templates/tpl_r380
  • Added ||wyswyg|| variable stored in user.dat used in sendf.tpl and config page
  • More buffer overun protection added.
  • Increase max template sets to 30
  • Fix bug with WAPMail keys
  • Protect against template requesting more attachments than allowed
2.6d 17th May 2000
  • Don't quote body if content type text/html
  • In quote body don't do href and email links and wraps
  • Fix bug so that rename etc for folders 0,1,2 is not shown even if begin_flit is used twice in one template.
  • Serve out ||roffset|| if we truncate a message body due to body_limit and when serving message body start on line containing roffset character
  • make body_limit work in quoted printable messages
  • Modified item.wml to provide a next section command for truncated messages, truncated due to body_limit (wbl) uses
2.6b 12th May 2000
  • Trim leading and trailing spaces of usernames
  • Serve ||last_login once||  per session
  • Serve ||remote_addr||
  • Serve ||upto|| and set upto in listf.tpl form so that delete etc return to same page
  • Fix various bugs in spell checker
  • Fix manager page error of maxwild exceeded
2.6a 10th May 2000
  • Include WAPMail in download and install options in WMSetup
  • Include support for WAPMail keys
  • Include all characters sent to browser when checking message size against body_limit
  • Log security attacks on cgi
  • Fix bug which leaves empty directories from failed logins
  • Remove target=xyz in wml mode as this is not supported in wml
  • In wml mode dont display email headers
  • Don't show headers in gwml (not enough space generally)
  • Use local variable $(ut) = utoken=||utoken|| to save space in item.wml could be used in other .wml templates
  • Fix date and to headers served out for forward success page - caused crash when in copies to self folder
2.5e 4th May 2000
  • Fix security hole
  • Added iso ini setting translates chars 128 to 255 to &#nnn; for wap browsers default false
    note this conflicts with allowing two byte chars delimited by first one negative but these dont appear to be used by wap browsers
  • Translate $`|{} and char 127 to the &#nnn; equivalent if in wml mode as these all upset the motorola wap phone simulator
  • Allow date_fomat ymd as well as dmy default mdy
  • Add print button to inav.tpl
  • Add check all hosts option to config.tpl non frames version.
  • Fix possible solaris crash on forward
  • Fix parsedate to recoginise daylight saving correctly in cst cdt etc.   
  • If bcc or cc field show to field in item.tpl   
2.5d 27th April 2000
  • Add more debugging options for purge and tidyup operation of purge
  • Add to log settings for any of the below as a list
    log purge,index,top_reply,stat_reply,uidl_reply,list_reply
  • Change item template to show to field if folder is copies to self
  • Fixed bug causeing loss of last char in address book on linux
  • If spell check message thats too big dont die or truncate
  • Accept lines in user.dat up to  2048 instead of 512 characters longe
  • Added ||popall|| config page setting if set on checknew check all pop hosts not just currently selected one
  • Update wml templates to work with motorola madk
  • For wml encode $ characters inside text messages
  • Fix bug in rules display added in 2.5b or c
2.5c 11th April 2000
  • Change   pop_delete_default to false in wml.ini sample
  • Accept login pophost setting of mailhost as "" so it can be used as a prompt on wml phones
  • Added cache-control nocache header for wml
  • For raq3 webservers that return everything up to ? as arg0 trim off possible file name before looking for ini file name Was causeing errors on attachment links.
  • Change body_limit variable name inside forms to wbl ( needed it shorter :-)
  • Remove help cmd from login.wml page as no usertoken. should make dedicated help part of login page
  • Fixed bug in option login on login.wml page. It gave error no username entered.
  • Put <br/> between lines in wml messages
  • Improved error handling for do_cmd on unix
  • Fix bug which stoped multiple global address books from being used.
  • Improve locking for unix with shared nfs drives.
  • Fix bug causeing occasional core  on solaris on  send
  • New template variable wml_page_size use when wml true and check for page size on login so user can set different page sizes for for ordinary browser and wml browser
  • Allow different lang.dat for each template set
  • Improve log layour
  • Fix bug introduced  in 2.3u causes error "Message not found on pop server (uidl) maybe it has been deleted" in some situations.
2.5b 27th March 2000
  • Added a delete msg option and href to item.wml
  • Updated listf.tpl for CWMail
  • Allow for more date formats in parsing date header
  • Added logout_time ini setting - changes time of day that utokens roll over default is midnight offset can be either in seconds or in hours:minutes
  • Look for body_limit in form before serving a body if present use it to overule ini setting so can set different body limits for different phones see list.wml for an example
  • body_limit is set at login (if in form use value) if 0 no limit
  • Put back change of cmd=send in query serves send.tpl ( I'd changed it in 2.5a) cmd=send in query is really cmd=new whereas cmd=send in a form is really dosend
  • Fix rare crash in forward with more than 1000 selected msgs
  • Update user locking routines
  • Change back to forward instead of forward_edit for forward link in listf.tpl stuffed it up in 2.5a
  • Fix bug in email links in messages introduced in 2.5a :-)
  • Fix various solaris cores in unusual situations
2.5a 10th March 2000
  • Disable inline and view as html if wml set
  • Add support for wap/wml and a wml template set for cell phones see wml.htm for details
  • Add wml true/false ini setting default false - looks for .wml rather than .tpl changes content-type etc.
  • Added body_limit x ini setting to limit size of body sent to x chars. Default is no limit
  • Added template variable ||t|| as time in secs mod 99 so that we can use to make hrefs unique to stop wml devices cacheing them as cache_control header is ignored :-)
  • Added serve h_from_trim in all item displays
  • Added prefix setting
  • Added ini setting lock_id for server farms. If multiple machines are sharing a CWMail workarea then each must have a unique lock_id string
  • Added set date and to headers for sentok template
  • Added ini setting smtp_port default 25
  • Added support for cmd=new, checknew and logout as  post options
  • Fix CWMail listf.tpl so you dont get errors on older versions of browsers without javascript
  • When reading ini file accept cr as well as lf as endofline char
  • Allow $pophost as ini setting for smtphost
  • Fix listf.tpl for mac IE initial collum of list blank due to IE bug sees <script... as implied td data
  • Fix bug causeing crash for forms with more than 1000 fields.
  • Fix listf.tpl in CWMail so scroll page bar at least does not give errors on mac
  • Change sendf.tpl in CWMail so picklist works on mac
  • If error getting message but got some dont give up on it just give error and keep what we got.
2.4e 11th Feb 2000
  • Fixed bug causeing error messages to sometimes be displayed as just Error: Content-type
  • Added a simple add address book button and form to address book page pickf.tpl for CWMail
  • Added template variable abook_only which stores current address book name and if this is set then picklist only shows one address book and public entries
  • Allow public address book entries to contain just addresses as well as name=address
  • In address picklist as long as its not fred=a,b,c then set value = address not name
  • Allow sort_on to be set in login.tpl and if ="" dont save sort_on so can make sort order revert to "on arrival" on login
  • Major upgrade of autopurge system - fixed several obscure bugs
  • Added to purge: empty trash if empty trash on exit set
  • Lock and release each user during purge to stop confilicts.
  • On address book save check global address book entered can be opened and give error if cant open it.
  • If gaddr_books field in pick.tpl form then set global address books to this - blank entries were eing ignored
  • Accept messages with identical message id's but different uidl entries as different
  • On login if pop_host entered and not = pop host 0 in user.dat then update user.dat as it implies pophost name has been changed.
  • Add check in pickf.tpl for editing blank address book
  • Only apply check_mins to pop host 0 or they can't check other hosts straight after each other
2.4d 1st Feb 2000
  • Fixed bug which caused server error on solaris and invalid password on some systems
  • Added check for frame=true in auto_login
  • If revert to pophost0 and its invalid don't try pop login as NULL user
  • Serve pop_user0 and pop_name0 in all templates
  • In send.tpl in picklist of addresses limit display to 40 chars but support entries up to 1000 characters in length
  • Various minor obscure bug fixes to prevent crashes in unusual situations
  • Added "are you sure" button for reject all future email from xyz
  • Seve out h_sender h_sender in message and list templates
  • Remove everything but actual address for addresses added to reject list
  • Added construct ||fred||esc|| which is replaced in template with url encoded value of fred
  • Modified frame.tpl to pass thru ||error||
  • Set ||error||  in any template served after an error. So can always display error even if error.tpl is not served as result of error.
  • Remove limit on size of parts list for multipart mime messages which caused messages with lots of parts (10+) to fail to display
  • Sort address book on save
  • Empty trash on login if last action was > 2 hours ago and empty_trash_on_exit true. Note this failed previously failed on frames version
2.4c 17th January 2000
  • New template variable in sendf.tpl h_priority  contents included as Priority: header
  • New option for recording nuber of times each template is served. If ini setting stats is true then every time a tpl file fred is served a "+" is appended to file in stats_path if defined or workarea stat_fred_tpl.s
    so file size gives number of times that template has been served.
  • Bug fix: Dont set set unseen flag for copy to self
  • Added ability to include a file whos name is defined by a user variable, syntax is ||include||$uvar1|| etc. $uvar1 is replaced by its value eg nfmenu.tpl
  • Added support for a dflt reply to pophost rather than domain. Syntax: allow $pophost in domain setting in ini file or default.dat/user.dat so dflt reply can be to pophost entered on login
  • Change license expires message to after end of February rather than after 31st of February :-)
  • Fixed bug in for CWMail send_date javascript did not cope with year of 100 returned by netscape - fixed
  • If already shown one template don't display error.tpl as well
  • Added if error_do set in template then on error do this cmd instead of showing error.tpl ||error|| should be in template which will get displayed. Eg  in send.tpl adding <input type="hidden" name="error_do" value="list"> would return to send page if to: was not specified
  • Added ||variable||left+||n|| construct to give say gday... instead of gdaymat for gdaymate||left||7
  • Added scrollable page scroll bar for CWMail list pages
  • Added transparent pictures for attach0 etc so they dont mess up list page with non white background
  • If Subject is just white space then serve lang_get (no subject) instead so they have something to click on in list.tpl
2.4b 20th December 1999
  • Added if ini setting for body_add is from_template then pick that up from send form
  • Added ini setting no_pick_in_tolist to remove picklist from tolist (note pick list is in topick)
  • Updated pickf.tpl pick list  is a pick list ( NOT editable ) click elements to add to address book
  • Added pop_cur=0 to login.tpl to make it default back to main pophost on login
  • Make autoadd of addresses to address book use  /naddress rather than address/n
  • Allow u_anything=whatever on login call so these variables are served out to login.tpl as well as other forms
  • Make max size of uvar1 to 4 1024 characters rather than 100 chars
  • When using multiple pophosts and accounts with duplicate message id. Show both copies of same message  in inbox if they came from different pop hosts.
  • For true/false ini settings accept 1 True truE etc as true
  • Obey ini setting pop_delete_default true for DMailWeb as well as CWMail - requires config.tpl and newuser.tpl changes to include a hidden variable for pop_del0 (see latest templates for details)
  • Added new template variable h_to_trim like h_from_trim
  • Make strnqcpy() more robust for solaris
  • Added optional pop port number for each pop host user line
    for main host port is 110 or that specified by port ini setting
    for other pop hosts port defaults to ini setting but is user setable on config page using pop_portn template variable
  • Accept &amp; as a seperator in query strings as well as just &
  • Changed all hrefs served into templates to use &amp; in href rather than just &
  • Raised limit of to field to 2048 characters
2.3z 6th December 1999
  • Fixed bug in error log routine which caused core dump on solaris.
  • Added allow page=xyz on send url so can go to template other than sentok
  • Fix get_date javascript in sendf.tpl so its year 2000 compliant. ie dont just add 2000 naughty naughty
  • For replyall make sure we dont die if  from to and cc together and up to more than limit, up limit to 2000 characters
2.3y 26th November 1999
  • For attachments in html display inline if inline images true
  • Added for multi part mime parts content-type message/xxxx show attachments = message n,...
  • Fix bug in mime decoding - not useing <pre> tag for no content type and message/status content type
  • Fixed bug in 2.3x which caused death on solaris in user_write
  • Added mcache_kbytes=0 always leave body on server if <0 never leave body on server
  • Add pop host icons
  • Added template variable ||item|| served out with b_item but contains just item number so syadmins can create variations of b_item
  • UPdated WMSetup utility
  • Added ||list_i|| and ||list_m|| list_m is message number, list_i is msg number on this page
  • Fixed begin_list end_list so linefeds don't get lost so script comment //--> works as expected in list
  • Added template variable ||h_popn|| for list page. Gives number(from config page) of pop host message came from
  • In login.tpl take out javascript: in onblurr="javascript:whatever as it kill ns3.01
  • Similaryl remove from pick.tpl and pickf.tpl javascript:
  • Add template command moveton which moves message and then goes to next rather than to list folder
2.3x 22nd November 1999
  • Added never time out after a spell check
  • Fixed return from spell checker >quoteing body.  Bug introduced in 2.3u
  • Fixed bug added in 2.3t which caused some images not to be displayed when inline images
  • Added ifndef ifnequal ifninstr  ||template constructs
  • Added  support for nested ifdef ifequal and ifinstr
  • Changed item.tpl and pick.tpl to allow add to address book rather than picklist
  • Added allow autoadd to address book of your choice with ||autoadda name is ||add_book ||addr_booksa||
  • Added support for entries without = in address book ie just ralph@mcduff as well as ralph=ralph@mcduff
  • Added to lang.dat language translation "user token not available" and "forwarding failed"
  • Added support for move message to selected folder after reply
  • Added support for different reply address for each pop_host. ||pop_replyn|| variables and read in from config page and set to user@pophost if not set
  • Added check for page=list or anything else after cmd=reject to allow template to specify where to go after a reject message command

2.3w 11th November 1999
  • Fixed bug which caused keep_index not to work on DMailWeb
  • Added in reply in quote_body add a couple of blank lines at start
  • Added serve out ||top|| so they can use it anywhere to allow use of cwmail/dmailweb in frames in a frame
  • Replace _top with ||top in ch_pass, config, foldersf, help, logout, menu and menubar.tpl
  • Added example of CWMail in frames inside another frame fcwmail.htm  - note have to define top cwmailframe in ini file
  • Added alert to send.tpl page for must reenter attachment after spell check.
  • Check for invalid upto variable from template and dont die.
  • Forward.tpl change to (Fwd: From message) rather than just (From message)
  • Use stat when talking to POP to speed up check with no messages available
  • Fixed reply_all function broken in send.tpl in version 2.3n
  • Addd page_num and pages || variables and use in listf.tpl for CWMail
  • Don't send wrap if send_wrap is set to <0 in ini file
  • Fixed bug: in ||do  template command: % chgaracters returned were lost or caused crash
  • When saveing a message check m_nnn.dat does not exist and inc nextid if it does.and log an error to prevent message overwrites after disk errors.
  • Re enable fetch_min limit - got lost after about 2.3g
  • Fix ||quote_body|| so it does not show mime junk in forward_edit and reply and text form of attachments.

2.3t 28th October 1999
  • Allow cmd=list or cmd=checknew with &newpass=xyz for return from NetAuth after password has been changed.
  • Increase wait for lock on user file to 30secs as may be waiting for slow pop open
  • Dont let them delete username for pop host 0
  • Dont die when they delete nth pop host when it is their current pop host.
  • Added new ini setting text_stdin true for use with java webserver that sends crlf instead of lf and crcrlf instead of crlf
  • Improve efficiency when scanning headers.
2.3s 19th October 1999
  • Fix datestamp on sent messages to inlcude daylight saving offset in timezone
  • Added manager_ip ini setting wildcard list of valid manager ips for cmd=manager
  • Added if checknew set in nflogin page then check for new messages on login
  • Added in login.tpl hidden variable checknew=true
  • Print more info in utoken not available error
  • Fixed bug: The variables  b_list_next and b_list_prev where not being served for folders other than inbox
  • Added construct in tpl file
    ||set||fred||bill|| which sets variable fred to bill and serves it to next page
  • Added support for hidden variables and cmd parameters that set a variable
    hidden variable name = set_fred value = bill or
    These constructs set the variable fred to contain bill and serve them to the next page
    If these set constructs are used with u_ variables the values will also be stored in user.dat
  • Added template variable ||page|| which gives name of current template file
  • Added support for hidden variable send_date and (if not empty) it is used in date header when doing send. With addition of javascript in send.tpl to write this send_date the message is sent with a date header which gives time and timezone on users browser rather than on the cwmail/dmailweb host.
  • Fixed bug which caused sort of messages in folders other than inbox to revert display back to the inbox
  • Added support for vhost= so you can use
    to overide what host to match against when serving login page
  • Serve out template variable ||vhost|| so it can be passed from template to template if required.
  • Added support for ?tpl_set=n to force login page served to be taken from template set n Note the template set still has to set on login page.
  • Updated u_.tpl example and added a secret . link to it on configf.tpl after copyright sign. If you need to add your own user variables or tick boxes to any template page or a new page of your own look at this example.
  • Added foreing character decoding in headers shown in view headers mode.
  • Fix decoding of foreign characters on subject truncate h_subject40 etc.
  • Only serve out charset in content-type header if set_charset true in ini file as this can upset template files containing japanese charaters.
  • Fixed bug which meant  b_prev and b_next appeared even when they were invalid
  • added no_manager setting to disable manager pages
  • pickup frame=true on auto_login
  • Fixed bug we served h_reply as h_from naughty naughty
  • Addded to send.tpl fill in to with h_reply if its set rather than h_from
  • Added prev page next page to list.tpl  it was only in listf.tpl
  • Fixed bug in uuencoded attachment - multiple parts was always returning first one.
  • Fixed bug in idx_free which could cause crash of cgi
  • Check for duplicate uidl's from POP server, which implies a faulty pop serrver, and log error. POP servers with duplicate uidl's sometimes caused CWMail not to display all messages until second check for newmail.
  • When limiting number of sends per day count each recipient as a separate send.
  • Dont go to quoted printable when sending a message just for ESC character as it messes up iso-2022-jp used in japanese version
  • Fixed url and email links within messages so they work with jis sequences used in japanese version.
  • Dont wrap on send if ESC character is found in a line.  It may be a long japanese sequence and if so should not be wrapped.
  • Dont read wrap  if ESC character is found in a line. It may just be a long japanese encoded line.
2.3m 5th October 1999
  • Added page_size options to control number of messages shown on each list page and next and previous page links. Has to have additions to list template and config page and needs ini setting use_page_size true to enable it. Users can set their own page size.
  • New ini setting use_page_size needed as you need template change if useing page size thing.
  • Added three new template variables b_list_next and b_list_prev  page_size
  • Now removes temporary user files spell.dat and spell.msg when spell check complete or start new send
  • Remember and serve  b_next and b_prev so they can be used in sentok.tpl
    This allows navigation after reply to message rather than return to list page
  • Fix javascript in login.tpl for ie3 again :-)
  • Added to address book page a Make group page.
  • Added new ini setting poplist_width which controls width of poplist drop down menu
  • Added new ini setting top default is _top This allows use of CWMail within a frame.
  • Allow page= with cmd=item
  • Added print button to item.tpl displays just message without controls in a seperate window so message can be printed or saved easily.
  • Serve tolist variable to more templates
  • Added template variable  ||topick|| like ||tolist|| but only contains picklist - not address books entries.
  • Allow cmd=new&page=xyz to provide different send page options
  • Fixed bug in rfc1522 in encodeing wierd weird2 need toinclude trailing space in encoded bit else it gets lost when decoded by outlook.
2.3k 27th September 1999
  • Added  ||tunread|| for list page. Number of unread messages
  • Added if message header has content text/html then set variable font true when showing that message so lines will wrap properly.
  • Added new ini setting reply_prefix can have value like -- or > (default) or false for empty. Used in quoteing message body in a reply.
  • Fix bug in child accept-reject introduced in 2.3g giving error you are not parent...
  • Added user locking to prevent possible loss of  folder indexes on some systems.
  • Removed several redundant folder index writes to speed up response
  • Removed pop reads for return to mail list
  • Added fix for hierachical multipart alternate messages so it does not show body twice; once as htm and once as plain text.
2.3g 23rd September 1999
  • Make "Use my from address" in forward template sticky
  • Fix possible crash in printing very long error messages
  • Fix bug causeing cgi to be left running on send with strange to: field
  • Add x-child-to header to messages sent to parents and use it when returning message to child so that cc's to child are returned correctly
  • Read pop_cur from login page if it is present so it can be forced to revert to main account on each login with a line like
    <input type="hidden" name="pop_cur" value="0">
  • Add support for
    <input type="hidden" name="clear_uvars" value="u_tick1,u_tick3,u_tick22">
        <input type=checkbox name="u_tick1" value="checked" ||u_tick1||> u_tick1
        so you can create your own tick boxes for anything and have values stored in user.dat
  • Fix error in parsedate used in sorting dates. It was adding rather than subtracting for timezones like +0930
  • Accept tabs in uidl response
  • New ini setting no_ref_encode removes email, http, ftp etc conversions to links
  • Fixed bug added in 2.3c which stopped http and https refs being turned into links
2.3f 3rd September 1999
  • Add fiddle to make IE use correct file extension when saving attachments and iniline images true
    Fixed bug causeing cgi to revert to main pop host after every list
  • Fixed bug causeing rebuild index to turn currently cached remote messages into local messages if current index file exists.
  • Accept space after + or - for timezone in date field when parseing dates
  • Fixed bug with reading empty address books
  • Fixed link to login after settings lost error
  • Don't add from address if child and dont keep messageWhen forwarding message to parent of child account don't add from address to pick list even if auto-add set.
  • Added alternative hashing method for hashing usernames to work directories and an ini setting to control it. (Dont change on existing systems!):
    hash_method 2
    The new method allows any characters in usernames and uses a two level directory structure    eg. workarea/n_a9/b4/
    rather than just workarea/u_xx/user@domain_name
    This is for new large systems on unix. It has a very flat distribution and will produce less than 800 directories per directory even on systems with many milliions of user accounts.
    Note1: Most large systems even on unix do not see a problem with existing hash method which is more transparent.
    Note2: As changeing the hashing method will make the cgi look in a different directory for a users files it should not be done on a working system. (Users would loose their messages and settings)
    A utility wmcd which returns a user_directory for an given username is included in the new distribution. Later a change hash method utility will be provided to move user files.
  • Updated manager page so that wildcards for users should be given as * rather than *@whatsit_com
  • Give all temp files created .tmp extension so they can be more easily removed.
  • If address book is too large to process print its name and size in log file on debug
  • Make spell check more robust
  • When using rfc1522 encode for headers recognise esc $ anything as start of sequence rather than esc $ B only
  • Added new ini setting swedish default false which does some translations for html
  • Added to sentok.tpl   - Auto return to list page after 4 secs
  • Added external login mechanism:
    allow call with cwmail.exe?cmd=auto_login&user=abc&pass_file=abcd
    file opened and deleted is workarea/abcd.tmp
    abcd.tmp should contain encoded password for user.
    pass_file.c contains an example of how to create such a file.
  • Allow call with user=xxx to display login.tpl with username filled in.
  • Use javascript to make focus go from user to password fields on login form
  • Use javascript to make it select user field in login form on load
  • Fix bug in sort introduced in 2.3d
2.3e 26th August 1999
  • Log more debug information
  • Fixed format of offset in date header so we get +0400 not +400
  • If cookie based login fails set pre_error rather than error outside template.
  • Fixed bug causeing view_headers etc not to be saved if no from addresses in picklist.
  • Added new ini setting user_prefix defaults to u_
    Defines prefix for generic user variables
  • Display and save and user_prefix* template variables. See example page u_.tpl
  • On child release clear accept from and reject from lists
  • iunseen1.gif replaced with unseen1.gif as both iunseen1 and iunseen0 were blank
  • Added in item.tpl display replied,new etc images with
    <img src="||nwimg||/attach||h_isattached||.gif"> etc.
  • Added new template variable pid which is pid of cwmail/dmailweb process on server
  • Added encode rfc1522 on get_reply in from line on sent message for foreign language compatibility
  • Change: When making from address of type "hello fred" <a@b> put a space between " and <
2.3d 19th August 1999
  • Fix bug causeing occasional loss of folder index
  • Change default in pick.tpl to return to pick.tpl after save
  • Log more information on date fields we cant parse month on
  • when comparing childs parent with us trim traling spaces of us first.
  • Make next and prev buttons in item.tpl work on sorted order not original order of messages.
  • Fix bug in sort by date - Thought we got it in 2.3a but nope.
2.3c 18th August 1999
  • Dont timeout if waiting for user to compose a message.
  • Updated  item.tpl to use absolte refs after a message so if it contains html links buttons at bottom of page still work correctly.
  • When picking up attachment names decode  rfc1522 encoded filenames
  • Fix bug causeing send of message to usernames like "Åron" to fail.
  • Add decode of rfc1522 headers in several places where it had been missed.
  • Dont terminate hrefs on  commas
  • Fixed bug: On save of filtering rules, child stuff etc it was reverting to template set 0
  • On cookie login - check pop open ok before continueing incase they changed their password.
  • For multipart/alternate mime message dont show text/plain part if inline image set
    ie if htm and text available show the html if inline images true
  • Fix bug causeing crash on poppassd change password with no poppassd server available
  • Accept m_nn.dat files moved from unix to NT or vice-versa
  • Fix bug in wrap encode and wrap() functions that were loosing one character after a wrap (usually just a space :-)
  • Fix bug causeing upercase content-type=QUOTED-PRINTABLE to be missed.
  • Quoted printable - add recognition for trailing =\n to mean truncated line prepend to next line.
  • Turn ftp:// inside message body into a link and check these before checking for email refs so that following ref works.
  • Add a button to child page for releaseing a child account from supervision.
2.3b 27th July 1999
  • Changed default checking of from ip address to first three bytes only as there seem to be more poxies out there dynamically changeing last byte
    ipcheck 3
  • Fix bug in send of quoted printable in msg body introduced in 2.2r :-(
  • Fix send and forward so that they dont keep POP open during send as it upsets some SMTP servers who try to do a POP login before a send.
  • Add check to abort and print error if get error reading in user.dat
  • On rebuild index check for any lost folders and call them folder n etc.
  • On create new user.dat find any existing folders and call them folder n
  • Make folder subject sort case independent
  • Make sort on h_bytes numeric rather than alphabetic
  • Fix strlwr of directory names in WMSetup
  • Support naughty pop servers that reply +ok top <cr> -err when out of messages.
2.3a 13th July 1999
  • Added an ini setting ipcheck n to say use n bytes of ip matching in check for matching ip address. So for system where users ip addresses change during a session you now have the option matching just first 1,2,or 3 bytes.
  • Added an ini setting to disable quoted printable encoding of non ascii characters in sent email.
  • Allow % character  in usernames
  • Present folder rename to a name which is already in use
  • If user tries to read or select more than 5,000 messages give an error dont die, and just d first 5000
  • Dont overwrite message index if there is an index load error - ie disk fault etc.
  • Added a key_expires variable for login page so its clear when demo key will expire.
  • Fixed  dot stuffing on messages sent/recieved
  • Allow page=xyz in login form and use docmd to get to that page after login if frames vesion
  • Use proper date comparison when sorting messages on date.
  • Dont always go back to inbox after save config and hence sort
  • Changed list.tpl to make sort on subject, from etc a to z and sort on to: for copies to self
2.2s 29th June 1999
  • Reset auto-logout timer on send and reply so we dont timeout after message has been composed.
  • Added ini setting allow/  to allow / in username to be retained - use with care.
  • Allways set folder to inbox on login
  • Fix bug in from ip match for cookies.
  • Fixed bug causeing cookie login to fail after logout
  • Fixed bug in child accept/reject when hostname != email domain name
  • Updated  item.tpl for more obvious child msg indication
  • Fixed bug seen in alpha and hpux versions: garbage chars appearing in templates
2.2r 14th June 1999
  • Fixed bug in parent child processing of large messages. If message was larger than cache size it was not forwarded until child tried to read body - fixed.
  • Added on send message with content_type text/html seperate body from signature and bodyadd with <br>
  • Dont leave userpid.tmp files around if user.dat update fails repeatedly.
  • Added allow use of v_exec as an addition to b_item to force allow exec
    as in b_item&v_exec=true
  • If cur_pop is set to unused pophost revert to host 0
  • Use pid in temp user.dat name to avoid conflicts causeing loss of user.dat
  • Fix empty string probelm on hpux build
  • Allow multiple work areas using lines like
    work bill fred \work2
    work z /var/spool/work3
    Note be very carefull about adding these lines when user accounts already exist. You must copy all the effected user files into the new workarea first!
  • Show addresses from multiple group addresses in picklist
  • Allow global address book names to be entered as ralph@ ie dots allowed
  • New feature: Sorted message lists, sort on size, date, from etc.
    Changes to list.tpl and config.tpl to support these. You can actually sort on any header in index. ie "subject:", "from:", "lines:", "to:", "date:", "cc:",
    "x-priority:", "_pophost",  "_remote", "_popuser", "bytes:",
    "content-type:", "content-disposition", "sender:", "reply-to:",
    "nwflags:", "resent-from:", datetime
  • Added more checks on update of childs user.dat to avoid possible errors
  • Change NT download file options to provide an option to leave unpacked files after upgrade for manual checking etc.
  • Fix bug in delete of last address book on unix machines
  • Provide config setting for cookie auto - login set_cookie and cookie_set and cookie_selected
  • Allow user to turn of cookie login in options page
2.2p 8th June 1999
  • Fixed bug causeing error on send in HPUX version.
  • Remove bug introduced in 2.2m giveing cant find default.dat error for new users
  • More checks for errrors on user.dat write.
  • Save current folder information so return to mail list takes you back to correct folder.
  • only copy in new signature if field is present to allow config page to be split into sections.
  • Added ini variable cookie_ipcheck n
    which checks n bytes of ip from address where n can be 0 to 4 This allows users connecting via proxy servers etc which use a batch of ip addresses to still use cookie based logins. Eg cookie_ipcheck 3 would enable and to match. Default value for n is 3
2.2o 6th June 1999
  • Added cookie based auto-logon option. If login form contains ticked set_cookie variable then a cookie is stored and future calls to cgi from that machine which would have served the login page will then do an autologin if appropriate cookie is passed by browser. Unless the no_ipcheck is set it will also check for matching from ip before allowing a cookie based login. cmd=flogin will allways produce the login page.
  • Added safeguard only create new user.dat from login call.
  • Added javascript to make popup window come to front when new mail arrives and when cwmail/dmailweb is clicked on popup use existing full window if one is open.
  • added template variable ||server|| which is set to vhost. This can be used with b_action to ensure messages containing html which change the base url dont stop cwmail/dmailweb buttons working. This is needed because b_action provideds a relative rather than an absolute url.
  • Fix send with non ascii chars in reply to field - like japanese or spanish
2.2m 1st June 1999
  • Fixed Delivered-To: header removed on forward
  • More error checking on cant read user.dat file and dont overwrite if folder 0 index exists.
  • Fixed bug causeing token to change and midday rather than midnight in some timezones
  • Fixed bug causeing rule processing to fail on messages with remote body
  • Major addition is optional accept and reject lists for SPAM control and addition of Parent-Child accounts. See Parent-Child Accounts for details.
  • New template files:
       rules.tpl        New mail rules and accept_from reject_from lists
       child.tpl        Childs account details
       confmenu.tpl Menubar for config.tpl and rules.tpl
  • Changed template files
       item.tpl       Added buttons for reject, child reject and child accept
  • New user.dat variables:
        af:             only accept email with sender/from/reply matching
        rf:               reject from one email address per line may contain name
        rejected      Number of rejected messages
        parent        email address of parent
        ch:            children one email address per line may contain name
        child_edit    current child account being edited
  • New || variables:
        children        list of children
        child_edit      name of child to edit
        child_pass     password of child to edit
        child_pick       pick list of children
        ch_accept_from   childs accept from list
        ch_reject_from    childs reject from list
        b_child_reject  delte msg and add sender to childs reject list
        b_child_accept return message to child and add sender to childs accept list
        accept_from        af: list one item per line
        reject_from        rf: list one item per line
        rejected            count of rejected messages
        nrej                 number rejected since last pop read
        b_reject            delete msg and add sender to reject list
  • New commands:
    cmd=reject             delete message and add sender to our reject list
    cmd=child_accept    add to childs af: list and forward message back to them.
    cmd=child_reject      add to childs rf: list and delete msg
    cmd=child_show       display settings for a child
    cmd=child_save        save settings for a child
    cmd=child_load         load settings for a child
  • Fixed bug. Now for users in @valid_user file strlwr and remove leading and trailing spaces, tabs and \r\n before comparison
  • Added if docmd is set on a page then feed it back out so can pass it from a form with newframeset. See confmenu.tpl for and example
  • Fixed bug: create new folder in frames version new folder page didnt redraw menubar
  • Added line number of offending line to msg "unknown ini file setting ..." error to help tracing ini file problems
  • Split config.tpl in two and added code (dont clear undefined variables) to allow users to turn config.tpl into multiple pages.
  • Changed lang.dat translation  to create warning rather than error for no translation for... and just use english when no translation available
  • Fixed bug: if auto logout period has expired and cached login then dont let them in.
  • Fixed bug: on spell check we loose attachments. This caused temp files to be left in work area. Fixed BUT note that user must still reenter attachment after spell check - otherwise this would be a security risk. We now warn user they have to reenter. and delete temp files created.
  • h_kbytes now rounded to nearest k
2.2i 20th May 1999
  • Fixed bug in logout code which could cause crash of cgi on some systems
  • Added extra template variables for new folders.tpl layout
    ||f_rename|| ||f_del||  ||f_newname||
    all blank for folders 0,1,2 ie new, trash and copies to self in begin_flist so users dont think they can delete or rename these
    f_tunread f_tmsgs f_tsize f_tsize variables as totals for all folders
  • Added .wav files attached to messages play directly if inline_images is true
  • Update login.tpl dont try to use focus command if msie3 as it cant. javascript error
  • Changed default templates sets to ntpl for DMailWeb and otpl for CWMail
    The original template sets now known as stpl are still available for separate download.
  • Fixed bug in manager.tpl for CWMail now copies .text rather than .value from select box for variable name.
  • On error E9 log all env variable so we can check why it happens
  • If @pop true and username is a@b@c then use c as pophost not b@c
  • TIdy up pickf template
  • Allow large (>100k) address books
  • On reply to message containing text/html quote_body now empty rather than garbage.
  • Fixed bug causeing FATAL GPRINTF error
  • Now only check for valid_user at login and allow use of setting
    valid_user @filename.ext with file containing one valid name per line
  • Add numerous lang.dat translations for informational messages.
2.2f 14th May 1999
  • Added allow spaces and tabs either side of = in address books
  • Added decode of uuencoded messages not containing images
  • Fixed bug which could cause occasional loss of folder index on some systems
  • Fixed bug which could cause occasional loss of user.dat on some systems
  • Added in poplist dont tack @pophost on if username contains @
  • Added  if username contains @ h_pophost template variable is set to blank not pophost as username already contains pophost
  • Fixed not wrapping  problem in sp_show for long lines.
  • Added lang.dat translation entries for (From Message) and (Fwd: From Message) and second one prefixes subject with Fwd: as you would expect
  • Fixed bug in translaation of *** forwarded
  • Added translation entries for six or seven other messages not previously included in lang.dat
  • Demote line too long error to an informational message not an error
  • Increase max size of to: line to 2048 and just truncate  and warn user if its exceeded.
  • Remove added user ... debug message as it glogs up the logs.
  • Added read wrap with v_font true looks for <br> rather than cr and inserts <br> for wrapping
  • Read wrap now counts back from wrap point through line looking for a space and if not found before last cr wraps right there.
  • Added new template variable structure:
    ||do(programtorun parametersincludeing||variables)|| which will execute any program and pass it parameters including translated template variables and replace with output from the program. For example:
    ||do(\cwmail\lookup.exe ||user||@||h_pophost||)|| might be replaced by
    "Mr Smith"  using lookup.exe to access some database.
2.2e 29th April 1999
  • Added on spell change if first letter  of word being replaced is capitalised then capitalise first letter of replacement word.
  • Remove background on login.tpl to stop flicker on load in Netscape 3
  • Create folder indexes for empty folders first time they are used.
  • Fix bug introduced in 2.2b causeing connection to POP failure on some systems
  • Fix bug causeiing crash if pick_abook_max is set lower than current pick list size
  • Fix bug causeing crash on save picklist if very large picklist
  • Added if cant open addr book named in default.dat then create it.
  • Fix bug in script for selection of sound for new mail in configf.tpl
  • If login with new window ticked always set focus to new window
  • Added lang translan tion for *** forwarded message ***
  • Added no_tcode ini setting for use when using direct links to CWMail without going through login page generated by cgi
  • Updated folders page to give folder list and stats. Added begin_flist end_flist f_renamexxx f_name, f_msgs f_size f_new f_unread f_del
2.2d 22nd April 1999
  • Load ||uaddress|| variable from login page
  • New || variable h_date_t24 24 hour time stamp from message
  • Fix bug. There was no error if couldnt send attachment due to file open error
  • Add_header now puts header right at begining of template file directly after line containing <head tag
  • Dont die just truncate list if pick list for folders addresses etc are too big.
  • Fix bug causeing lockup with very large pick lists
  • Downgrade error Empty new: Cannot remove file... just log imsg as it is an expected error if not all messages are downloaded from POP server.
  • Better error handling if get_item fails for any reason
  • Added template variable pop_cur index of current pop server
  • Added ini setting valid_from_ip to restrict access based on from ip address
    valid_from_ip *.21.2.4,
    Use wild card lists (no spaces) to restric access.
2.2c 19th April 1999
  • Fix bug wmsetup   lowercased directory names entered by user for install files.
2.2b 7th April 1999
  • Ignore interveing spaces/tabs in address nickname lists such as ralph, bill
  • Fixed bug in save config settings - user changes to max msgs and maxkbytes to download were not being saved.
  • Fixed bug which could cause loss of user config settings in some situations.
  • Allow ||var||left||nnn|| to extract left x chars of var. This can be used with any template variable in any template file.
  • Allow save of empty address books.
  • Fixed  address book bug which replaced spaces in  entries with _
  • Only allow letters and numbers and _ in address book names.
  • Allow IP names like and dont assume they are an IP addresses.
  • Added ini setting allow- default false to allow - in usernames
  • Set content type to text/plain on attachment if no indication what else do.
25th March 1999
  • Jeeves - Active anti spam system -
    1.4c beta release available for testing
    Jeeves is an active anti spam system which enables your users to protect themselves from unsolicited email.
21st March 1999
  • NetAuth - Web based email management system -
    1.0a beta release for use with DMail and DMailweb/CWMail
    Provides web pages and CGI for email account creation and management. Virtual domain management etc. Version 1 for use with DMail and NWAuth only. Free to licensed users of DMail.
2.1t 18th March 1999
  • Fixed bug in delete folder routine
  • accept cmd=addfrom in item.tpl as an href.
    Need something like this
    <a href="||b_action||?cmd=addfrom&utoken=||utoken||&fld=||fld
    ||&item=||item||&h_from=||h_from||">Save Address</a>
  • Fixed bug in remote message rule processing move and delete  now delte from pop host as well as local cache.
  • In send message dont change to quoted printable just for a tab character
  • only look for add_br in send.tpl if content_type contains string html
  • change spaces to _ in address book names.
  • Added template variable copyright2  same guff but not an href - used in one of new template sets
  • Fix menubar.tpl so popup works for ie4 as well ie3
  • Display items from all address books in picklist upto ini setting pick_abook_max values - default 255
2.1s 10th March 1999
  • Fixed bug in del selected with multiple pop hosts.
  • Give user error if trying to retrieve remote message and no matching pop host setting
  • Change default on login.tpl to keep controls same window
  • Make https: links clickable
2.1r 9th March 1999
  • BUG fix in forward msg  causeing internal server error on some systems
  • Added cmd= host= in log file to help in debugging vhost problems
  • Fixed in forward message use real name in from if required
  • Fixed in forward messge encode From header if in another language
  • Change item.tpl so subject field uses colspan 3 so saveaddress doesn move over too much on long subject lines
2.1p 3rd March 1999
  • Fixed  bug in rebuild index on unix - on some systems it didnt find any messages. They still exist and rebuild index will now find them.
  • Added accept manager_password @abc to read password from abc.dat in template directory. This is much safer if web server allows read access to any file in cgi directory (which it shouldnt but...some do)
  • Rebuild index now skips place holder files which are remote body messages. Previously these could appear twice after a rebuild and check mail.
  • Fixed bug in diskquota not going down on rbody msgs after logout
  • Accept on and ON for form tick boxes.
  • Change E13 and E1 error msgs so they can be trapped in ||error||
  • Fixed bug in poppassd now accept anything under 500 as ok
  • Set h_subject_raw for forward.tpl so it can be used if required
  • Remove spurious " in background tag in pick.tpl in DMailWeb
  • Fixed send.tpl and sendf.tpl so IE3.0 as well as IE3.01 doesnt give javascripts error
  • Add support for usernames with + them eg Ralph+one
2.1m 23rd Feb 1999
  • Fixed bug in spell checker - caused crash if click on miss spelled word and > 17 near matches and using || template variables and ...
  • Added set_xyz=fred form post and html query line variables - so
    http://host/cgi/cwmail.exe?cmd=x&set_fred=abc   or <input type=hidden name="set_fred" value=abc   will create a template variable fred with a value of abc for the next template page served.
  • Added cmd=show&page=xyz&utoken=||utoken||... which will display xyz.tpl
  • To allow menubar in frames version to be customized for particular pages two template variables were added; ||docmd|| and ||nmenu||
    When a query line includes newframe=newframe the query (minus newframe= is put in ||docmd|| and frame.tpl is served.
    Updated frame.tpl to use docmd and cmd=show etc and ||nmenu||
    Listf3.tpl and menubar3.tpl (in 2.1m dist set) provide an example of changing the menubar when a message is being read. 
  • Fix CWMail help.tpl change background back to black so you can read it.
2.1k 18th Feb 1999
  • Fixed bug in poppassd  on unix builds introduced in 2.1j
  • in vhost xxx setting we now match the xxx against an ini setting vhost_match with a default of SERVER_NAME rather than HTTP_HOST as this is usually tied to server_name setting in web server configuration.
2.1j 17th Feb 1999
  • Fixed change password with poppassd bug introduced in 2.1f
  • Changed default to cache_posts true and removed expires header sent for cache_posts false as it caused "Data expired ..." errors on some systems.
  • Fixed bug if user sets content type and adds an attachment then it was falling back to text/plain rather than what he set.
  • Change the template directory default in WMSetup back to dmweb for consistency with earlier version.
  • Added template variable add_br for send.tpl if set then add <br> to end of lines of msg before sending.
  • Added vhost and vend ini settings and virtual domain support
    see Supporting virtual hosts or multiple email domains.
  • Added suffix ini setting for suffix to be added to usernames for token, pop login, etc.
  • Added ||header and ||checksum to template files and support in WMSetup to allow upgrade to check for modified template files.
2.1f 10th Feb 1999
  • Fixed bug causing crash on address books with lines longer than 900 characters
  • Fixed bug which could cause loss of user information user.dat on rare occasions.
  • Added cache_posts ini setting with a default of false. If false send headers to web browsers to stop them cacheing form posts.
  • Fixed bug causeing attachements not to be docoded if BASE64 rather thatn base64
  • added headers to login.tpl and other files
    ||header: modified=false tpl_set=cwm_s1 version=2.1e||
    these will be used by setup wizard to warn of new version, changes etc on upgrade.
  • Add  username to logged disk quota exceeded error message
  • Added meta headers to login.tpl to tell browser not to cache login page.
2.1c 21st Jan 1999
  • manager.tpl for DMailWeb was corrupted and did not provide fields for users matching and new value
  • user_opt.dat for manager page updated
2.1b 20th Jan 1999
  • To allow uvar1 to 4 to be cleared a form entry of - is now accepted as a empty field. This is needed as we cant distinguish between an empty field and one not present in a form.
  • added a ||time|| template variable which returns time in seconds
  • added cwmail/dmailweb -version command line switch to display version number
  • fixed bug which was loosing names of all but first address book after send new message
  • Fixed bug in multipart mime boundaries; only the last boudary should have -- after it
  • Added code to handle POP servers which close socket prematurely
  • Fixed login.tpl so that ticking the new-window tick box only ticks keep-controls only if new window is also ticked
  • changed login.tpl to use javascript set focus to user field rather than onload so it happens before images are loaded.
  • Added a navigation image dmwnav.jpg to menubar on DMailWeb
  • Changed "New" flag on messages. It is now cleared at  login as well as logout.
  • Support for poppassd password changeing in config.tpl. Note this requires the pop server to be on a unix machine and to be running poppassd. Various versions of poppassd are available on the web. For your convenience we have one available on netwinsite. See poppassd
  • Bug fix. replaced missing lines from item.tpl which caused no token error in some situations
  • Added:  If in item.tpl  saveaddress form has hidden field item then return to item after adding address rather than to the pick.tpl page
  • Bug fix  ntpl/pickf.tpl javascripts error: now reload is an image not a button.
  • Bug fix in send.tpl in DMailWeb useing sel.options[i].text instead of sel.options[i].value for pick list items.
  • Added background dmwback.jpg for DMailWeb .tpl files
  • WMSetup installation and upgrade wizard added.
  • Added cmd=list_copy and cmd=list_waste to allow links directly to these folders in template files
2.0p 18th Jan 1999
  • fixed template bug - redundant " in send.tpl for DMailWeb non frames version - caused problem for netscape
    <select name="tolist" size=5 ">   note trailing " after 5
2.0n 9th Dec 1998
  • Fix bug introduced in 2.0h which stopped logouts being recorded
  • Move include nfmenu inside body in send.tpl, config.tpl etc.
2.0m 9th Dec 1998
  • A new ini setting and template variable ||nwimg|| has been added to allow all images used in the templates to be served directly by the web server rather than through the cgi. The setting
    nwimg /nwimg is used if images like cwmail.gif are stored at the url /nwimg The references of the form ||b_action||/fred.gif becomes ||nwimg||/fred.gif
    If no nwimg ini setting is used then ||nwimg|| will be interpreted as ||b_action||
  • login.tpl updated for IE3 to stop it always creating a new window on login.
  • spelling checker added to DMailWeb
  • fix menubar.tpl so popup works from ie3 without javascript error
  • menubar.tpl updated to use a single image for logout, popup, forrward back buttons.
  • added target=_top to href on copyright notice Note ||copyright|| must appear somewhere in your templates :-)
  • Reseller options updated.
  • Handling of email address enhanced so that reply to address of form, paul and x) does not cause problems and
    <fred> becomes <fred@domain>
  • uvar3 and uvar4 added
  • fix problems with menubar centering in Nicks template set
  • Added nowrap to subject and time field in message list.tpl to make display of newmail list nicer
  • Removed duplicate body tags in Nick's template files
  • Print more information when ini key fails ie version number, etc.
  • Added a copy to self tick box on forward.tpl
2.0k 2nd Dec 1998
  • Added a nice background cwback.jpg to all template files.
  • Added CWMail background in fwdeditf.tpl in Nicks templates set
  • In Nicks template set fix forward back arrows in menubar to work with NS4
2.0h 30th Nov 1998
  • Dont allow a move message to same folder as source in item.tpl
  • Bug in autologout_mins fixed. It was measureing time since login rather than time since last action.
  • Added nicer errors if template set not found. revert to standard templates if requested set not found.
  • added ini setting hash_num n specifies number of chars to use for directory hashing for user direcories. default = 2
  • New ini setting tpl_set for multiple templates sets. eg. tpl_set 2 /home/french/templates
  • added ||variables tpl_set n and tpl_setn checkboxes for template sets 1 to 10
  • Modified config.tpl to allow user to select template set 1 to 10
  • Updated item.tpl and login.tpl
2.0g 26th Nov 1998
  • New login.tpl with tick boxes for one window, browser controls and frames
  • Now have cmd=login   (frame or non frame depending on ini setting) cmd=nflogin for non frame login and loginframe for frame login.
  • view as html v_asis tick box in item.tpl was still sticky. added ini setting save_v_asis and put back in item.tpl so sysadmin can decide
  • new ini setting url_newpage default true open new browser page when user clicks hrefs embeded in email messages
  • returned message from POP server shown in errror message on timeout was incorrect.
  • embedded hrefs in emails now terminate on " as well as other terminators.
2.0f 20th Nov 1998
  • Bug fix: If copyself or wastefolder doesnt exist and we cant create them and user asks to go to them dont crash
  • Bug fix: If we get an error on print to POP or SMTP port then close socket.
  • Downgrade error on tcp read as it can happen on POPERS that close sockets prematurely.
  • Dont attempt a read after quit if socket already closed - for similar reasons.
2.0d 18th Nov 1998
  • Dont die if POP host closes port before a quit. (QPOP does this on a password error - naughty QPOP :-)
  • Try POP login twice before giving up with complete disconect reconect
  • Flush tcp connection before sending user/pass commands as some naughty POPers give two answers (eg -ERR bad password, +OK disconnecting)
  • Bug fix both reply and replyall now blank cc field for reply
  • Bug fix: ini setting auto_logout_mins was used as an hours  setting in someplaces
  • Bug fix to field in replyall had a trailing comma if bcc or cc was blank
  • Added lots more messages to lang.dat for foreign language versions
  • Trim trailing spaces off username and password so dont get "ralph" and "ralph " as two different users if POP server ignores trailing spaces.
  • Bug fix in send.tpl script (none) in pick list did not do a clear
  • Removed double <option><option> in list.tpl listf.tpl for CWMail they caused a blank entry at top of pull down list
2.0b 11th Nov 1998
  • For CWMail user can now remove additional pop-host lines in config.tpl by deleteing just the username for the host line to be removed then pressing save changes.
  • Added an ini file setting to allow the template variable seperator to be specified as any two character string. We now use
    separator ||
    which with other changes in version 2 make it much easier to edit the template files using editors like frontpage ( which did not like the %% variables and do clever things we dont want them to :-)
  • ifdef, ifinstr etc dont have to be on seperate lines anymore - they are treated as if they were.
  • To stop html gui editors moving things like ||poplist|| to outside <select> tag if an ini setting for separator is used the initial option and final /option tag are place in template file rather than in the variable ie:
        %%fldlist%%    -->         <option>%%fldlist%%</option>
        %%poplist%%    -->         <option value="0" >%%poplist%%</option>
        %%addr_books%%-->         <option>%%addr_books%%</option>
        %%list_alt%%    -->         <option>%%list_alt%%</option>
        %%r_headers%%    -->         <option>%%r_headers%%</option>
        %%r_actions%%    -->         <option>%%r_actions%%</option>
        %%r_folders%%    -->         <option>%%r_folders%%</option>
        %%tolist%%    -->         <option>%%tolist%%</option>
        %% -> ||
    For NT a small utility rsearch.exe and a cmd file to make the above changes is included in the distribution set.
  • Added dwidth for entries in pickist (dispalayed not used) limited to 40 chars to stop the scroll bar for pick list dissapearing of the right of the screen.
  • !! Picklist scripts changed to use .value not .text so long names are not truncated. NOTE: this change must be made in old templates if they are to work with 2.0b   send.tpl  javascripts need updateing!
  • Pick list fixed so it displays Ralph Pugmire but uses "Ralph Pugmire"<>
  • Add header ini setting now adds header immediately after <head tag rather than after first line after head tag :-)
  • Add lang_get for strings rhdr's No Rule from to etc.
  • New ini setting frames_default if true an Enter from IE on logon page will go to frames pages rather than non-frames pages.
  • Addeed last_first ini setting to say get last message first. This is less efficient but some people prefer it. This means read in entire headers
    list upto xovermax and then retr in reverse order up to xmaxmsgs
1.9k 2nd Nov 1998
  • Public address book entires are also shown in the pick list provided we have less than 100 entries in pick list
  • Added the cmd=login&user=xyz&pass=secret&page=send For sysadmins who want to set up systems that go direct to send or  any other page. For those using systems which prelogin users and who are prepared to include passwords in a url
  • Set the %%toedit variable everywhere we setup picklist variable incase they want just a list of pick addresses without option tags etc.
  • Fix W7 error for send and forward to add \n and failing address and to not from
  • Spurious " in send.tpl in pick list removed (and from faq example)
  • Minor change to pick.tpl
1.9h 30th October
  • Extend error message for xcached login to refer to faq12
  • Fix bug in send which can leave stray ataXXXXXX files around on SMTP errors.
  • New  ini setting temp_area so they can keep temp files separate from work files
  • New  user.dat setting for domain which takes precedence over ini setting and is set by login of type  fred@abc when @POP ini seting is true. This provides a better default reply address when @pop true.
1.9g 23rd October
  • Fix spurious forwarding error message bug introduced in 1.9f :-)
  • Fixed bug; closeing socket too soon after quit to POP server.
  • Added more error checking for message "already connected on another machine"
  • On POP logins retry after pause incase its a lock problem.
1.9e 19th Oct
  • Handle long lines in messages better ie. wrap dont truncate. Increase line length limit to 2000
  • Add processing for cmd=delitem and cmd=delitem so they can be used in hrefs as well as buttons.
  • Protect against writing user.dat if folder names lost are lost for any reason.
  • Updated: pick.tpl, cwmail.htm, dmailweb.htm, cwm_user.htm, dmw_user.htm, index.htm
  • Added user and group address books and simple lists see updated pick.tpl and docs for details.
1.9c 13th Octoberr 98
  • Added to lang.dat translation entries for rule processing commands copy,move etc.
  • Fixed bug in fwdedit.tpl   bcc and cc fields should be blank
  • Fixed bug in item counter when delete message and display next item.
  • Added process %%user%% in defaultReply line in user.dat so that sysadmin can set default reply to something like for a group of users
  • Added log of username to logged error for xcached loggin error message
  • Remove leading or trailing (my name) from email addresses when checking for duplicate addresses in pick list etc.
  • Added FAQ's on use of virtual domains.
  • Added ini setting language_file and lang.dat to support translation of all error and informational messages into languages other than English
  • Added error number prefix to many errors eg E1: ....
  • Added %%ifequal%% template function
  • Fixed dont include trailing .,() space or tab in html links in mail messages
  • Added add_header ini setting to allow inclusion of no cache and other headers to all template files.
  • Fixed allow trailing /or \ on templates and workarea ini settings
  • You can now use manager.tpl to set pophost n xyz
  • Allow DMailWeb users to enter pophost0 details in config.tpl
  • New ini setting peruser_pophost (default false) stops pophost0 being reset to ini setting if login fails, needed if different pophost0 settings will be used for each user.
  • Fixed. Moved %%include%%nfmenu.tpl%% in list.tpl out of <head> section into <body> section
  • Additional reseller support added.
  • Set b_reply in list as well as item.
  • Template files updated: forward.tpl,item.tpl.list.tpl, send.tpl
  • Template variables added: v_myfrom, pop_useri, pop_namei
  • Ini settings added: allow_form, allow_java, allow_script, no_ipcheck
  • Add note option and use my from address option added to forward
  • List and item templates changed to use forward instead of forward_edit as forward_edit does not send attachments
  • Fixed bug causeing loss of message body on forward for messages with body left on server.
  • Added pop_useri and pop_namei %% variable for send.tpl so you can have a reply popup when CWMail user  is using multiple pop hosts
  • rfc1522 rcpt to and rcpt from on send, and decode when displaying pick list for those with special characters (like japanese)
  • Update item.tpl so close formbefore %%show_item%% and reopen afterwards so that if it contains a form we dont loose tick boxes at bottom of page
  • Fix spurious blank lines in messages
  • Added protection against trojan horse html script emails
  • Added ini setting allow_script true/false default false removes scripts from messages being displayed unless execute html is set
  • Added ini settings allow_forms allow_java
  • Modified item.tpl  to make view as html non sticky
  • Added log username and check for zerolength password if giving error cannot login....
  • Added more specific error messages for pop and smtp connections
  • Added cmd=delitemn and modified item.tpl to use it to delete and move to next msg
  • Fix xcached error produced by login.tpl not containing  <input type="hidden" name="tcode" value="%%tcode%%"> line (although it should allways be added)
  • Added no_ipcheck  ini setting to disable  from ip address check for connections
1.8s 5th Sept 1988
  • Workaround for IE3 IE4 bug causing filename  extension to be garbled when saving attachments to file.
  • Fixed bug which could cause loss of user.dat file on heavily loaded system.
  • Added  pop_timeout ini file setting with default of 30 seconds. For with very slow POP/SMTP servers.
  • Set nitems and item_id %%variables in item.tpl so they can display them.
  • Added max_sends ini setting to limit the number of sends per day per user default 500
  • Modified save config handleing to allow for no pop host table in config page
  • Look for content_dispostion = attachment headers to to help pick up attachment status when leaving body of message on server.
1.8p 31st August 1988
  • Fixed bug from 1.8n which stops remote messages > mcache_kbytes being deleted
  • Added decode quoted-printable mime attachments
  • Fixed bug causing crash on solaris attachment with no body
  • Changed default_reply when @pop true and login as ralph@abc to  ralph@abc
1.8n 24th August 1998
  • Fixed bug in cwmail1.8m which caused large messages to be deleted on next mail check after being read if larger mcache_kbytes
  • Fix spurious error message after deleting msg in DMailWeb with delete after download set
  • Added newuser.tpl and newuserf.tpl for handling new users.
  • On invalid token logged out just display error.tpl with link to login againf
1.8m 21st August 1998
  • Tidy up receipt of attachments with no body text to handle type .xls, .doc, .jpeg etc.
  • Fix bug processing faulty passwords
  • Dont bother to purge cache on failed logins.
  • Dont display both logout.tpl and error.tpl
  • Allow cached login page if logged in already on same machine
  • Fix bug handling attachments with spaces in name and non inline images display
  • Added nm_sound and playit in stubf.tpl for new mail arrival (only in CWMail for now)
  • Fix bug added in  1.7c which made some browsers fail with .xls attachments
  • Fix read of non base64 text attachments
  • Recognise  "dispostion atttachment" as well as base64 => attach
  • Dont make @h h@ and @@ in message body into email refs
  • Fix display of nitems and nnew in stub.tpl
  • Fix bug which miss read empty headers eg "subject:" as opposed to "subject: "
  • Added ini setting mcache_kbytes msgs larger than this body is left on server default 10k until item read
  • Fix display of attachments in copies to self
1.8k 13th August 1998
  • Templates updated: configf.tpl, stubf.tpl
  • Variables added: user_agent, usex, uage, uaddress, umax_attach, nnew
  • New ini settings:
  • Added %%variable user_agent to make it easier to make template files browser specific to work around browser featres :-)
  • configf.tpl modified so save config works with IE3 BUT cant not refresh menubar as target=_top confuses IE3
  • Fixed non frame login cached login error security problem.
  • Fixed bug causing double spaceing of message body lines in some situations
  • Added new user.dat / template variables uage,usex,uaddress for general use.
  • Limit max attach size to umax_attach user.dat setting. default no limit.
  • Added %%nnew%% variable number of new messages found on last pop check.
  • If login for new user fails remove the files we created so that spurious logins from fake users dont fill up the disk.
  • Dont allow .. in username or pophost name.
1.8j 7th August 98
  • Decode quoted printable special characters in message body for reply and forward
  • When createing new folders dont allow name which matches except for case ie   NewMail == newmail
  • decode special characters in address  picklist
  • Single part mime attachements with no message body now handled correctly
  • Fix autorefresh every 2mins for new mail popup window
  • Fix. words.dat and user_opt.dat were not copied into dist set
  • Allow cmd=help, cmd=empty, cmd=send in template files so these can be used in as hrefs instead of buttons
1.8i 5th August 1998
  • Bug fix. On solaris in manager page entering blank value could cause manager.dat to be corrupted causing crashes on any cmd=manager
  • manager.tpl updated
1.8h 3rd August 1998
  • Bug fix. user_opt.dat was not being distributed with unix versions. It provides a pull down list of user.dat setable options on manager page.
  • Added a Popup window which shows new messages as they arrive, allowing user to surf the web and then instantly return to cwmail/dmailweb when a message arives. Template in stub.tpl and stubf.tpl (not supported in ie3)
  • Bug fix  continuation lines from unknown headers could get added onto from header.
  • Allow reuse of failed cached login pages, so yo can go back and correct miss typed password.
  • Accept tab as well as space as first character of header continuation lines.
  • Bug fix. In manager page deleting user accounts number deleted not initialized to zero on unix.
  • Bug fix. CWMail menubar logout href did not log out properly. If you have a version with link instead of button - update the menubar.tpl
  • Fixed bug in %%subject_40%% which could remove half of an escape sequence used for foreign characterset support. 
  • Reduce memory used when deleteing large numbers of messages
  • Reduce memory used in manager wildcard commands.
  • Dont encode < as &lt when in foreign charset escape sequence
  • Added manager page commands for deleting user directories either from wildcard definition or file containing list of user accounts.
  • Fix bug causing autoadd to addresses not to be updated if pick list empty
  • In manager routines ignore . and .. files for purge delete etc.
  • Print file error details if invalid ini key caused by file error
  • Added show_tiff true ini setting added for inline display of .tif attachments
  • Bug-fix uvar1 and uvar2 where not updated if set in a template file
  • Non frame send.tpl demonstrates alternative pick list using add button
  • Allow view of headers and deletion of messages too large to download
  • Bug fix. Temp failure to read user.dat could cause it to be reset to default
  • Bug fix. newline in formatted html in messages was being lost
  • Added. lowercase_username, lowercase_password ini settings to force username and password to lowercase so user Ralph = ralph = RALPH etc.
  • Correct display of msg size in some error messages  kbytes instead of bytes.
  • Decrease memory size during purge of large systems.
  • New tick box in  manager.tpl  to enable changes for only users with currently blank setting. eg change dflt signature for people who have not yet set one
  • Make replyall tack from to and cc fields together
1.8d 21st July 98
  • security update. Failed login now logs out any other current connections for same user.
  • add from_ip_address to stats logged.
  • Fixed crashing bug on send without "copy to self" introduced in 1.8c :-)
1.8c 17th July
  • remove self.tmp files after use
  • do pop quit immediately after deletes to make sure it happens
  • Fixed bug which prevented use of cmd=manager on unix
  • In processing default.dat allow use of  %%user%% variable
  • manager.tpl modified  so it works with IE3
  • Security problem with connection from multiple IP addresses fixed
  • Modified list.tpl and listf.tpl  If folder="copies to self" then put "To" rather than "From" in the message list
  • In processing message body containing foreign characters. Dont look for email addresses between 0E ....0F sequences and dont text encode 0E.....0F sequences
  • Give an error message when rejecting a login from a cached page
  • Avoid rewritting key file for matching valid key.
  • New ini setting stats_path creates daily stats file with 1 line per login. Records time, user, msgs_served, msgs_diskuse
  • Manager cmd displays msgs_served and msgs_diskuse calculated as part of purge
  • Make cant write to kfile an error message not an info message
  • When processing strings of addresses for send, forward etc. ignore contents of quoted strings.
  • When extacting address_only from "name" a@b ignore <@ in quoted portion
  • Use rfc1522s encoding  when required for reply_to and to  headers.
  • Use rfc1522s enconding when required for resent headers when forwarding a message
1.7d 7th July 98
  • manager.tpl updated 
  • new ini settings:    date_format dmy, @pop true/false
  • @pop true allows login username of the form
  • put filename in logged error for cant find .gif to serve
  • when adding to pick list lowercase and only look at address not name part for checking for already in the list
  • bugfix - dont delete records for remote messages when useing multiple pop accounts with some set to leave on server
1.7c 2nd July 98
  • FAQ's updated
  • Manager documentation extended
  • Set remote address to blank on logout
  • Give error on no manager password rather than just no data for cmd=manager
  • Dont display a last purge date if there wasnt one ie 0
  • Do what we can to make valid extensions for file attachments for IE 3 & 4 given faulty behaviour for hrefs with parameters.

    .zip, .gif, .txt, -> OK
    .exe gives rubish still
    .doc and .xls gives .txt or blank extension

1.7b 1 July 98
  • template files updated: listf.tpl manager.tpl config.tpl (lost in 1.6e)
  • template variables added: manager template variables
  • ini file settings added: manager_password, purge_mins, auto_logout_mins
  • a manager command and template file has been added to allow sysadmin to update user settings for wildcard selection of users and perform other management tasks. For example change the disk_quota for all users. Manager control is begun by entering url:

  • Auto purge of cached new mail messages for timed out logins. Controlled by purge_mins which sets how often purges should be performed and auto_logout_mins which sets how long since last activity for a logged in users before they are purged. Default is 60
  • An example of how to add a diskspace low warning message has been added to the listf.tpl template file
1.7a 25th June 98
  • template files updated: sendf.tpl
  • template variables added: h_kbytes
  • ini file settings added: valid_pop, valid_to, valid_user
  • Wildcard settings for user, pop host and send to addres to limit use added
  • if content type for message body has charset="abc" pass it thru to web browser
  • fixed bug in show headers when show as html is on
  • if content type for message body is html then display as html
  • added a pull down list to sendf.tpl with content type: plain, text/html
  • allow multiple(3) attachments to a single email
  • h_kbytes variable to display message size in kbytes
  • make year in h_date_day 4 digit if >1999 else 2digit
  • calculate h_lines for copies toself
1.6g 1st July 98
  • Missing config.tpl for DMailWeb added back into distribution set
1.6f 19th June 98
  • Template files updated: list.tpl, menubar.tpl, sendf.tpl
  • Template variables added: h_unseen, uvar1, uvar2
  • Config file settings added: keep_index
  • Change tpl files using image maps in forms to make them compatible with IE3 & 4
  • Add send message button to menubar in frames version
  • Fixed bug causing attachements with path n:a.b to retain path in filename
  • Limit new mail list refresh time to greater than fetch_min config setting
  • Change fetch_min is now ini setting not user.dat setting
  • Added uvar1, uvar2 general purpose template variables stored in user.dat
  • New config setting keep_index implies keep index of remote newmail default value is true for CWMail and false for DMailWeb
  • Fixed bug causing message read flag to be lost after check for new mail
  • Give user an error on process selection when no messages selected
  • Fix date bug causing 13pm rather than 1pm in %%h_date_time%%
  • Make dates in sent messages have four digit years rather than two digit
  • Added new icon for "create new message" and use send icon for send message
1.6e 13th June 98
  • Changed registration page for CWMail
  • crash on post bug added in 1.6d removed :-)
1.6d 12th June 98
  • Bug fix for crash on del item when item no longer exists.
  • Handle quoted printable in message body and use quoted printable as required in message send.
  • Handle japanese and other characters in From header
  • ignore @ in quoted email name when extracting email address
  • Fix bug in decode of quoted printable in single part mime messages
  • In mail list from ""<a@b> now appears as a@b not blank
  • Print computer name in ini key failed message
1.6c 6th June 98
  • user help files updated for internal links in same frame
  • new user failure bug introduce in 1.6b fixed :-)
1.6b 5th June 98
  • If key is temporary then copywrite variable on login page contains (temp key)
  • Security enhancements including: Only accept tokens from same remote_addr as used in most recent login for that user
  • Handle multi line headers when retrieving headers from file
  • Fixed bug in rfc1522 decoding which cause %%h_subject_40%% to leave some strings still encoded
1.6a 2nd June 98
  • Forwarding bug fixed. (avoid double angle brackets in mail from header)
  • Dont die if pop server sends us a blank uidl header line
  • Prevent user login from cached copy of login page - requires updated login.tpl
  • Return to same mail folder list after forward and forward selected
  • Frames version of DMailWeb introduced
  • Path removed from attachment file names
1.5a 25th May 98
  • An additional "forward and edit" has been added. This uses b_forward_edit instead of b_forward and a new template file fwdedit.tpl and an additional variable h_xfrom
  • New ini settings added: empty_trash_on_exit and no_trash
  • Fixed occasional crashes due to errors reading user.dat files
  • Fixed bug to ensure remote messages are deleted from cache before pop read and on logout.
  • Fixed bug which could cause loss of message synchronization if pop connection goes down temporarily during message retrieval
  • Fixed bug causing check of account with thousands of messages to die with internal error
  • Fixed search for ini file so it works with web servers which dont include path in cmdline
  • Fixed bug causing temp attachment files to be left if send failed
  • Added lowercase ini setting names so that Key and key work
  • Added new ini settings to allow newmail folder name to be set
  • Fixed bug causing crash in write of user.dat if another version still running for same user
  • Try write several times if error.... sometimes fails to write then fails
  • Added url_encode utoken so # in username is ok
  • Fixed problem with multi line signatures and adverts appearing on a single line when sent with an attachment
  • Added %%ifinstr%%variable%%value%% construct for template files
  • Fixed bug causing occasional crashes on some systems on item delete
  • Fixed problem with NS4 nfmenu.tpl pulldown list of folders
  • Added h_bytes header in copies to self messages
  • Fixed problems reading copies to self messages on NT
1.4a 10th May 98
  • Added menubar for non frame versions nfmenu.tpl and nfmenu2.tpl
  • Tidied up pick.tpl and list.tpl
  • Added trash and copies to self for DMailWeb
  • Make %%copyself%% copy to copies to self setting persistant
  • Make %%addsig%% add signature setting persistant
  • Make %%send_autocc%% send carbon copy to self setting persistant
  • Update next message id during index rebuild if necessary
  • Fixed default reply name@*domain * removed
  • Added user quotas with %% variables to show used and available space (see config.tpl for example of use)
  • Added config setting to limit max messages downloaded
  • Added config setting to limit max message size to download.
  • Added config setting to limit max list of messages shown in a page
  • In rebuid index recalculate disk use for user and h_bytes for each message
  • Added user quotas, max_download_msgs, max_download_kbytes, and config settings dflt_*
  • Added %% headers for msg lines and size in bytes
  • Added %%get_reply does not add domain if username contains @
  • Added %%info_msg for warning messages about downloads
  • On rebuild index if no uidl and no mid and no date use msg number
  • If no pop host supplies dont write user.dat and give error
  • Added rebuild message indexes button to config screen
  • Fixed bug causing old messages to be lost when reading old index files
  • Fixed fax number in registration form
  • Comments field was not being sent on registration form - fixed
  • New login.tpl uses ifdef to only show register para on login.tpl if unregistered and make %%register%%="" if registered
  • Decode rfc1522 in from lines
  • New ini setting hide_x_mailer which removes x_mailer: dmailweb... if registered
  • For frame login allways look for frames version of any.tpl file first
  • %%include upgraded to replace template variables in included file
  • Process multiple line email headers and long header lines
  • rfc1522 Q decoding bug fixed
  • Handle new style SMTP gratuitous response lines of form nnn- properly
  • Attachment handling tidied up. Remove path from attachment references, Handle space in attachment filenames
  • Do rfc1522 encoding when sending subject header lines.
1.3a 15th April 98
  • Remote messages concept introduced for CWMail. Messages which are left on POP server are flagged as remote and handled appropriately for delete, move etc.
  • forward and spelling and several other features of CWMail were disabled in version for solaris, sgi, osf, bsdi and aix
  • problems with japanese subject line in body of message etc. fixed
  • occasional problem with key for wrong pc bug fixed
  • forward and delete from folders other than new-mail delete would fail - fixed.
  • bug with forward and delete with multiple POP hosts fixed
1.2e 8th April 98
  • Support for japanese characters in subject field using iso-2022-jp & rfc1522
  • buf fix for embed email address refs which corrupted japanese text in message body
  • Pragma cache bug fixed
  • Bug in send copy to sender which rejected sender of form "Ralph Pugmire"<> fixed
1.2d 2nd April 98
  • Multiple body_add lines are now allowed in ini file to provide multiple line adverts etc.
  • Bug in del_selected items fixed
  • CWMail forward and delete now works
  • CWMail previous and next buttons now work when not in newmail folder
  • none removed from folder pick list
  • Stops user moveing item to current folder
  • Forward now works from any folder
  • IE3 problem with send message not starting on top line fixed
  • Frame menubar folder picklist now does auto change to new folder on change selection
  • CWMail priceing more explicit in registration page
  • Added view register.txt before sending it
  • CWMail if set to not delete on download then do pop delete on delete selection or move selection from newmail folder
  • Added newframe variable set in config.tpl and folders.tpl to signify reload whole frame so pophosts and folders pick list get updated in menubar
  • Bug on entering passwords for multiple pop hosts fixed
  • Added wrap="physical" in send and send2.tpl for message field
  • Added a new ini setting rset tru/false default is false. If true do rset after download so messages are not marked as read. Helps users who have set email client to only download unread messages.
  • User manual written for DMailWeb and link to it on login page
  • Aded <br> after inline attachment links
  • New ini setting pop_delete_default (default setting is delete for CWMail and dont delete fro dmailweb). On CWMail this sets default for new users. Users can change the setting from their config page
  • corrupted reply1.gif and attach1.gif in unix buiilds fixed
1.2b 16 March 98
  • Real Name setting added to user config page used for friendly From: "Joe Smith"js@xyz
  • noedit_real_name and noedit_reply_to ini settings added
  • obscure bug with some MIME messages fixed
  • h_subject_raw template variable added
  • h_subject_raw variable added - doesn't have "Re:" prefix added
  • %%real_name%% available in list.tpl
  • bug in %%else%% processing fixed
  • default to delete from pop server for CWMail
  • change default install path for templates on unix for better security
  • put <> round msgids in headers when needed
  • register.htm info added and linked into relevant pages
  • documentation upated.
  • Forward bug introduced in 1.1z fixed
  • New ini setting inline_options added to allow things like target="newpage" to force new browser window creation when an inline html ref is clicked.
  • Bug fixed which occasionally caused <br> to appear in an inline html reference
  • Date on sent messages now local time +- offset rather than GST
  • Optional timezone ini setting to add a string to end local time of date header such as nzst
  • Bug fixed causing newmail not to be displayed after logout/login within 200 secs
1.1z 4th March 98
  • Allows login username to contain @ character for use with POP virtual domain hosting
  • Timeouts implemented on all POP and SMTP connections
  • Extended documentation
  • Upgraded installation instructions