BoboMail is a so called webmail application, which provides mail access
through a web interface.
It is distributed under the GNU GPL. See COPYING in the package
or go to http://www.gnu.org for details.
- read, write, reply, forward, delete and bounce messages
- send and receive attachments
- decodes quoted-printable, base64 and uuencoded
- handles HTML-mails properly (with inline images!)
- direct support for the following MIME types:
message/rfc822, message/delivery-status, multipart/alternative,
multipart/mixed, multipart/report, multipart/related,
multipart/digest, text/plain, text/html, text/x-vcard, image/jpeg,
text/rfc822-headers, image/png, image/x-xpixmap, image/gif
- works with POP3-servers and partially IMAP4 (spool-files under development)
- easy to modify and customize through HTML-templates
- modular design provides easy interface for other authentication
methods and mail protocols
- provides optionally its own fast multithreading webserver (BoboMailHTTPD)
- multi-lingual support (i18n) - currently English, Brazilian Portuguese,
Finish, Spanish and German
- and it's 100% Python :-)
The first version of BoboMail was used for about a year and a half in the
intranet of the Computer Club Ostfriesland (one of Germany's largest computer
clubs, see http://www.cco-ev.de if you understand German). I wrote my own
webmailer, because at that time only some Perl scripts were available,
which were not easy to customize (e.g. German interface).
BTW: The name comes from Bobo - the former name of ZPublisher (the cgi
framework I use). If you have a better/cooler idea for a name let me know!
I hope you will find BoboMail usefull. Please send complaints (e.g. spelling
mistakes), criticism, security advices, suggestions, praises and everything
else to firstname.lastname@example.org or visit me (Henning) on my personal webpage
This product includes software developed by Digital Creations
for use in the Z Object Publishing Environment (htt://www.zope.org).
The BoboMail distribution contains Zope's ZPublisher and ZTemplates. These
compoments underly the Zope Public License (ZPL). They are packages with
BoboMail for easier installation.
BoboMail is hosted at Sourceforge (http://sourceforge.net). If you are
interested in BoboMail development please visit the its webpage at
Besides I want to make BoboMail even more modular so that my stuff can
be used for a mailinglist archiver or a web-forum.
Attention: I really would like to know where you will use BoboMail. Please
tell me your success stories :-)
| BoboMail is currently in development and may be not usefull for end users. |
So, if you don't got scared, try the following steps:
1. The first thing you need is Python - the best programming language on earth.
You can download Python from http://www.python.org. But probably it is
bundled with your distribution if you are a Linux user.
2. Okay is Python installed? Then copy all the stuff into a directory, e.g.
3. To customize BoboMail and get it working, look into bobomailrc.py and change
it for your needs (look for smtp_host, pop3_host, auth_host, domain, etc).
4. Either change the imagedir variable in bobomailrc or add something like
Alias /bobomail/ "/usr/local/bobomail/images/"
to your httpd.conf (for Apache servers)
5. Do a chmod 700 to the var-directory or chown it to the user and group for
cgi-scripts (look into httpd.conf for User and Group). Often it is
nobody.nobody (on RedHat) or wwwrun.nogroup (on SuSE). This
is neccessary to store the logs files and the session data for the
authenticated users. When you get a Zope-Error with permission denied,
you probably did something wrong here.
6. type "make install" in the app dir. This will compile all Python files to
speed up BoboMail.
7. Move bobomail.cgi to the cgi-bin directory of your webserver and edit
the marked line in it.
8. Test it: Go to the URL http://localhost/cgi-bin/bobomail.cgi with your
favorite web-browser and have fun.
You don't have a Apache? Okay, other servers work too, but you might try
BoboMailHTTPD.py which is even faster. The parameter -d suppresses the
message output and will write it to a log file. You can run the server in
background. It will listen on port 9673 (change bobomailrc.httpd_port if
If you have a RedHat 6.2 system with Zope installed you can delete the
ZPublisher and ZTemplates directory. This will speedup BoboMail because
the already installed components make use of C modules.
You may find it necessary to change the line reading
On some systems an authentication error occured although the userid and
the password were right. This was caused by a buggy dumbdbm.py which was
shipped with Python 1.5.2. This distribution new contains a newer version.
Some people tried to run BoboMail with Python 1.5.1 or lower. Therefore you
have to patch ZPublisher. (Not really recommended)
In Publish.py replace
outputBody=getattr(response, 'outputBody', None)
try: outputBody=getattr(response, 'outputBody')
There was one problem with the permissions in release 0.3:
The error message "module main not found" means that the
webserver can't read the file main.py. chmod +r should fix this.
If you have any other problems, mail me and I will try to help you.
I have testetd BoboMail on the following system:
- RedHat 6.2
- SuSE 6.0
- Linux 2.2.15
- Python 1.5.2
- Apache 1.3.11, Apache 1.3.12
- Mozilla M15/
Netscape Navigator 4.7
- OpenBSD 2.7
If you see Zope-Error messages look into the html source for a Python
traceback to see what went wrong (e.g. import errors occure when the
directories are wrong). If you don't understand them mail me the page.
Todo list for 1.0
- test existing features with all kinds of mails.
- handle more exceptions and errors
- remove path from filename on attachments (with some browsers..)
- improve speed! (using C module?)
- get Unix-mailboxes/spool-files fully working
- let user choose language (through HTTP_ACCEPT_LANGUAGE?)
- take care of security (pages should expire etc)
- handle multiple domains (partially done with patches)
- import ZopeHTTPServer instead of patching it
- make better documentation
- README.multiple-domains, README.multiple-installations
- MIME-forward, priorities, Reply-To and as an option (-> preferences)
- provide install script
- make code thread-safe
- more i18n and l10n (date fields etc)
- support unicode with Python >= 1.6
- look for XXX and TODO in source
- with the help from Ken Causey the annoying first-login-bug is fixed now :-)
- IMAP support for uw-imapd, expects additional folders in $HOME/Mail
- now runs with Python 2.x without problems
- new look, using nicer template inspired by zope.org
- and some other small bug fixes (see cvs if you like)
- documented the source a little bit for interested developers
- now if you enable multiple domains you can limit it to special hosts
- fixed various messages parsing bugs (e.g. now accepts mails with attachment but without body and always recognizes to filename of an attachment)
- some visual improvements to the templates (more to come in the next release :-))
- Spanish translation (thanks to Diego Brouard Martín)
* new session management
- seperated preferences, adressbook and mailbox into different classes
- two fixes in sendmail.py (thanks to Georg Bauer)
- Finish translation (thanks to Markku Yli-Pentilä)
- some important fixes to mimeviewer.py and some other files
(sorry lost mail with sender - nevertheless thanks!)
- added bouncing
- even more clean-ups and modularisation but more to come
- improved vcard-support
- some notes in docs/README.Security about https
- implemented simple adressbook
- changed design of templates a litte bit, more use of css
- some code clean-ups and minor fixes
- more modularisation
- maxium messages per page in list-view (customizeable via prefs)
- named anchor in html-mails now don't cause errors any more
- complex vcards are now skipped instead of generating errors
- now works with Python version >= 1.6
- Brazilian Portuguese (pt_BR) translation (thanks to Cristiano)
- tollerates multi-part messages without end-marker
- BoboMailHTTPD and PCGI work again :-)
- "make install" compiles all files to speed up BoboMail
- message size instead of lines shown
- view messages and headers in raw format
- new mails are indicated through a nice icon
* preferences: username, signature, view images inline
- replies now with In-Reply-To header for intelligent mailers with
- the username will automatically be determined if auth_host == "localhost"
- send mails via pipes
- sort order visible by header, reverse sort order, order stored in prefs
- usability: status messages are now displayed in the list view
- some fixes (filenames with path in attachment, authentication problem
caused by a buggy dumbdbm.py, Y2K issues, deleting first message)
- simple IMAP4 support (working but not much tested)
- mailtos in HTML messages are converted
- open new window on message links
- word-wrapping in text messages
- show all recipients, reply to all
0.3-1: small bugfix-release (ServicePack 1, hehe ;-))
- additional notice about Zope components in documentation
- updated TODO
- reversed ChangeLog order
- fixed distribution problems with permissions/file access
- fixed attachment bug in sendmail.py (thanks to Guillem)
- attached multiple pop-server patch from homepage demo in distribution
0.3: first appearance on Sourceforge
- renamed project from "DogMail" to "BoboMail"
- added i18n-support with German translations
- some bug fixes
- disabled some untested or partially implemented functions for release
0.2: complete rewrite of 0.1 with lots of new features
- very improved MIME handling
- extensive usage of DocumentTemplates
- more modular and extendable
0.1: never released to public
- simple mail facilities
- bad hacked MIME support
- Ian Bicking (various great patches and improvements)
- Jonathan Walther (suggestions, portablitiy on BSD)
- Guillem Mateos (bug reports and fixes)
- Cristiano Reis Monteiro (Brazilian Portuguese translation)
- Markku Yli-Pentilä (Finish translation)
- Diego Brouard Martín (Spanish translation)
- Ken Causey (various important fixes of annoying bugs)
Credits go to...