Project page
Bug tracking
Patch manager
Mailing list

Screenshot 1
Screenshot 2


Daily CVS Snapshot


BoboMail 0.6pre1

About BoboMail

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.

Current features:

  • 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!)
  • does not need Javascript
  • 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 ich@henning-schroeder.de or visit me (Henning) on my personal webpage at http://www.henning-schroeder.de/en Important acknowledgement: 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 http://bobomail.sourceforge.net 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 :-)

Installing BoboMail

 | 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. /usr/local/bobomail

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 you like).

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. Addendum.

You may find it necessary to change the line reading #!/usr/bin/env python to #!/usr/local/bin/python in bobomail.cgi

Problems 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')
   except: outputBody=None
   error_hook=getattr(module,'zpublisher_exception_hook', None)
   try: error_hook=getattr(module,'zpublisher_exception_hook')
   except: error_hook=None
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

After 1.0

  • make a Zope product



  • 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!) 0.4-5:
  • 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 thread-view
  • 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

Thanks to

  • 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...