Nikosoft
OpenSource Software

Webmail

Download | Documentation & Changelog | Screenshots | Mailing List

NikoSoft WebMail is a set of PERL scripts working as CGIs, on any platform (Linux beeing the development platform), and released under NSPL (a slightly modified GPL, for compliance with French laws - but don't worry, an English translation is provided). It is a web-based application allowing your users to retrieve and send mails using SMTP and POP3. It does not download permanently mails from POP3 server, avoiding mail duplication. It has be designed to be "light and simple", and therefore:
  • Only a few PERL modules are needed (or almost,see below).
  • No database at all is needed.
  • Browsers don't have to be JavaScript enabled (JavaScript helps, but is not mandatory).
  • As well, cookies don't have to be enabled.
  • Perl-Strict compliance allow an Apache mod_perl execution.
However, features are not forgotten. It can:
  • Download and manage mail in POP3/POP3S, helping you select SPAM detected by, for instance, SpamAssassin.
  • Read mails from most charsets, displaying them correctly, url'ing the urls, sanitizing the received html, ...
  • Send mails with most charsets, with the help of AJAX to suggest you the email addresses to send to.
  • Search through mail inbox, to find quickly what mail you're interested in.
  • Attachments are fully handled when receiving mail, and you can send one attachment per mail.
  • LDAP integration is provided, for address book and authentication, and recommended as it's a lot faster than POP3 auth.
  • Of course supports all the basic of email reading and addressing (CC, BCC, MIME, View mail headers, RFC-compliance, ...)

You can also download separately the AuthenNSMail Apache authentification PERL module, that does POP3 authentication. It needs mod_perl. Click here to download. Untar it, and just do a perl Makefile.PL, make, make install. Doc is included as perldoc Apache::AuthenNSMail. And yes, it is odd to use a POP3 server as an authentication server, but some may need it.



Downloads

Stable branch: Version 0.12.1
Download as Tarball   (be sure to completely read the README.TXT file and configwm.pm.dist template when using from tarball)
Nota: if you want to build a RPM, do a "rpmbuild -ta nswm-0.12.1.tar.gz"

CVS
Sources can also be retrieved from anonymous cvs:
cvs -d:pserver:anonymous@nswm.cvs.sourceforge.net:/cvsroot/nswm login
and then
cvs -z3 -d:pserver:anonymous@nswm.cvs.sourceforge.net:/cvsroot/nswm co nswm
You can also browse the CVS.


How to get involved and report bugs ?
To get some help, or to get involved, subscribe to the NikoSoft mailing list: mailto:nikosoft-request AT ml.free.fr?subject=subscribe
Be sure to check the mail archive is available there.


Documentation and Changelog
General Note: always install the latest available version of required modules from CPAN. If you have an old version (especially if you use ActivePerl, which has old versions of some), it's very likely that there will be bugs. If you don't want to mess with PERL source modules, use an RPM-compatible Linux distro (see the modules pack upper in that page), make your own packages (rpms, debs, or ppm), or don't use the webmail.

Here is the documentation included in the Webmail's package:
Nikosoft Webmail

------------------------------------------------------------------------------
# $Author: nikopol $
# $Date: 2007/04/01 20:52:22 $
(c) 1999-2002 Alexandre Aufrere

http://www.nikosoft.net/
------------------------------------------------------------------------------

 This Webmail is a simple set of PERL scripts, it works using module 
Mail::POP3Client, and allows to send and receive MIME compliant mails.
The whole thing is "secured" using POP3 authentication, ie mail can't be send 
or retrieved without initial correct authentication.APOP and standard PASS 
authentication work. No need of any SQL base and so on.
This allows NSWM to remain simple and light, and not to require an important 
set of PERL modules.

NSWM deals with authentication at choice:
- through HTTP Auth: just configure your Apache to authenticate user with normal 
HTTP Auth. Then you need to use indexauth.pl instead of index.html as a start 
page, and run NSWM in mod_perl. It works automatically.
- through Cookie stored key: the key used to encrypt the password may be 
stocked partially in a cookie. This prevents bad guys from accessing other 
users inboxes when they used shared computers.
You have to enable this feature in the configwm.pm file, at "cookiedomain": 
enter your domain to enable the feature, comment the line out to disable.
Both security features will work over HTTPS.
The use of cookie stored key over HTTPS is recommended.

Supported languages

  Modules exists and languages have been tested for:
  - English (lang-en.pl module, core module)
  - Francais (lang-fr.pl module, dev module)
  - Russian (lang-ru.pl module, dev module)
  - Hrvatski (lang-hr.pl module, trn module from dpavlin at rot13.org)
  - Deutsch (lang-de.pl module, trn module from Tobias.Mueller at stud.uni-hannover.de)
  - Norwegian (lang-no.pl module, trn module from erlingp at f00bar.fagmed.uit.no)
  - Hungarian (lang-hu* modules, trn module from keve_g at mail.takarek.net)
  - Swedish (lang-se.pl, trn module from hm at nool.nu)
  - Czech (lang-cz.pl, trn module from svasek at nextra.cz)
  - Italian (lang-it.pl, trn module from theos at bp.lnf.it)
  - Spanish (lang-spl.pl, trn module from scristi at startlight.com)
  - Portuguese (lang-pt.pl, trn module from luiz at pucrs.br)
  - Romanian (lang-ro.pl, trn module from chally_ro at yahoo.com)
  - Dutch (lang-nl.pl, trn module from lex at theros.nl)
Anyone translating the langpack in another language is asked to send it us, please !
This way we can improve NSWM.

INSTALL
1- Unzip it:
On performant UNIX (with recent gnu tar), do a tar xvzf nswm-XXXXXX.tar.gz
On Windows, use Winzip or PowerArchiver (http://www.powerarchiver.com)
2- Set up your favorite HTTP server to handle the application.
For Apache:
=> put an Alias section as /nswm for the nswm/html directory
=> put a ScriptAlias section as /nswm/cgi-bin for the nswm/cgi-bin directory
For IIS,NES:
Use the graphic interface to set it up properly. Refer to server documentation.
3- Then you have to edit configwm.pm file and specify your SMTP server 
($SMTPserver variable).
Words and paths can be set up in config.pl file.
You can also choose the language.
Nota: configwm.pm template is configwm.pm.dist.
4- PERL Modules to install if not installed:
Don't forget to install them (example with Mail::POP3Client):
=> perl -MCPAN -e install Mail::POP3Client on UNIX (or see at http://www.cpan.org)
   or ppm Mail-POP3Client on WNT's ActivePerl (but better see at http://www.activetsate.com)
The following modules/packages are needed:
IO-stringy,MIME-Base64,MIME-Lite,MIME-tools,MailTools,Mail::POP3Client,
TimeDate,URI,CGI
(yeah, that's a lot, i know. MIME encoding/decoding isn't a simple thing...)
5- Misc install things:
Don't forget to chmod 777 (or, better, chown apache or nobody or www-data) the 
/var/opt/nswm/log and /var/opt/nswm/tmp directories if you don't change those 
locations in the configwm.pm file.
You can do a small cron script to launch bin/nswmcron to enable the automatic 
cleanup of temp files (This is automatically done by the RPM).
Don't forget to change the html/title.htm file....

OPTIONS
Optionaly, an LDAP Directory server might be used to:
- guess the user's email address from the login (according to inetOrgPerson RFC class)
- authenticate the user for non-POP actions (sending an email, looking at 
headers of sent mail, etc.)
If you decide to use these optional features, you'll need to install 
Net::LDAP and Convert::ASN1

CHANGELOG
V. 0.12.1 04/07 adding optional support to declare spam mails
		improving headers display in inbox
		several small bugfixes

V. 0.12.0 02/07 adding AJAX autosuggest for send mail form
		adding quick search on "from" and "subject" headers
		now saving partially sent mail
		fixing lots of bugs (in from and date headers parsing, ...)

V. 0.11.1 12/05 encrypted password is now managed as a cookie by default
		several bugs were fixed (#44, #45, ...)
		added Dutch langpack
		partial multicharset support when replying:
			- by default, the charset from the conf is used
			- when replying to a message in different charset than default,
			switch to utf-8, recoding everything
		small performance optimization when replying (do not re-get the full message)

V. 0.11.0 05/05 redispatched the scripts correctly in directories
		added support for POP3S
		several small features were added (inline display of images, ...)
		several bugs were patched (#37, #38, #39, ...)
		one potential security hole was patched (cross-site scripting related)

V. 0.10.4 08/04 use CGI.pm hack for escaping

V. 0.10.3 08/04 small bugfixes in UIDLs handling and english translation

V. 0.10.2 05/04 fixing html message parsing, adding Priority header read support
                small bugfixes (password escaping, spaces in attachments, ...)

V. 0.10.1 04/04 lots of small bug fixes (in headers decoding, logging, ...)

V. 0.10.0 04/04 new UI, SPAM detection software bindings, yet another improvement
                in cyrillic charset handling, bug and security fixes and improvments

V. 0.9.10 03/04 fixing bad charset guessing in getmsg.pl

V. 0.9.9 03/04 fixed email subject parsing in sent mail. added small, read-only
               address book with LDAP backend. better handling of charsets when
               reading emails. icons for the reading mail page.

V. 0.9.8 03/04 fixed a lot of small bugs. more RFC compliance. more non-RFC mailers
               "understanding". better support for w-----s mailers (namely O[E])

V. 0.9.7 03/04 fixed email address parser

V. 0.9.6 03/04 small bugfixes, adding CSS support, full headers and send copy
               features. generalized email parser. more color customization

V. 0.9.5 02/04 small bugfixes, adding support for reply to all

V. 0.9.4 11/03 lots of bugfixes, including support for multipart/alternative

V. 0.9.3 09/03 added blowfish encryption for passwords

V. 0.9.2 02/03 added LDAP Optional features

V. 0.9.1 02/03 misc bugfixes in URL and mailto: handling

V. 0.9.0 11/02 new langpacks, multiple inbox, lots of
               various bugfixes, cron manager for deleting files

V. 0.8.3 09/01 new langpacks, multiple delete, BCC fields
               allow charset choice

V. 0.8.2 06/01 new langpacks, changed masquerading feature behaviour
               independant authentication module (nswmauth.pm)
               finished fixing remaining bugs

V. 0.8.1 05/01 fixing cookies for security improvment feature
 
V. 0.8.0 03/01 bug fixes, new langpacks
 
V. 0.7.9 11/00 bug fixes, icons for deleting mail
 
V. 0.7.7 07/00 bug fixes, mod_perl compliance, Cookies security improvment
 
V. 0.7.6 07/00 bug fixes, perl-strict compliance, HTTP Auth support
 
V. 0.7.5 07/00 bug fixes, attachment/MIME sending
 
V. 0.7 06/00 bug fixes, imporved MIME and security
 
V. O.6 04/00 still bug fixes, and light MIME implementation
 
V. 0.5 02/00 more bug fixes, VRFY command to resolve email adresses thru 
	sendmail
 
V. 0.4 02/00 install bug fixes, quote and forward
        creation of autoconf.pl, quoting initial message in reply and forward
 
V. 0.3 02/00 first public release
        added CC field to sendmail
 
V. 0.2 12/99 internal release - for use on my company's intranet
        MIME decoding improved, since still not able to handle non-text content 
 
V. 0.1 11/99 internal release
        main shaping, frame structure, basic components
 

Special thanks to RYAN SAYRE (ryan at skylab.org), Dobrica Pavlinusic 
(dpavlin at rot13.org), and Clarke Brunt (clarke.brunt at viridis.net)  
for feedback.