MasqMail
Introduction
How it works
Platforms
Limitations
Security
Requirements
Download
Roadmap
Mailing List NEW!
Bugs and Suggestions

Introduction

MasqMail is a mail server designed for hosts that do not have a permanent internet connection eg. a home network or a single host at home. It has special support for connections to different ISPs. It replaces sendmail or other MTAs such as qmail or exim.

Since version 0.0.10 it supports alias address expansion and can deliver to pipes.

MasqMail is released under the GPL license.

How it works

When offline, MasqMail queues all mail with a destination outside of the local network. When you connect to the internet, masqmail will be called with a connection name as an argument. MasqMail then sends the queued mail to the configured mailserver for that ISP. When a message from the local net is received when online, MasqMail delivers it immediately. If there is no mail server for that ISP, MasqMail can also send the mails directly to their destinations.

For each ISP different return addresses can be configured. This makes it possible to get around spam traps which desire your return address to be from the same domain as the host the mail is coming from. This is not a problem if you always connect to a single ISP, but is one if you use different ones from time to time. It also makes it possible to configure your mailer to a return address on your local network which maybe totally unknown outside. So delivery failure messages originating on your local net can be sent directly to you, while those that occur outside will be sent to the configured address. (Note that the return path is different from the From: address or the Reply-to: address. You can still have a single address where you want replys to be sent to).

When offline, MasqMail behaves just like any other ordinary mail server (with a few limitations, but these will be fixed in the future).

To detect its online status, MasqMail can take advantage of the masqdialer system. But it also works well without it.

See the manual for more information.

Platforms

MasqMail is being developed for Linux. It may run on other Un*x like platforms, but it will certainly not run on Windows or a Mac. Currently I see no point in porting it to other platforms.

But it is possible to use a Windows (or Mac or any system that knows about SMTP) host as a client. Just configure your mailer to use the machine MasqMail is running on as your mail server.

Limitations

MasqMail is still in a very early stage of development. Use it with extreme caution! There may still be serious bugs in it, so mail might get lost. I was careful that this should not happen, but I cannot guarantee anything. Mail will be written to a spool file as soon as possible and only then will the sending host be notified that the mail has been succesfully retrieved, but nobody knows.

There are also some features every MTA should have:

  • it does not use .forward files (but it uses alias files since 0.0.10)
  • it does not yet send any error messages (eg. malformed address or delivery failures) back to the sender.

But these are worked on.

MasqMail is not designed to run on a host with a permanent internet connection. It does not have the ability to check for spam mail and it will relay everything from everywhere to everywhere. Use another mail server such as exim for permanent connections.

BTW: I am already using it...

Security

I hope that I have not done anything stupid, but there may be security holes in it. If you find one, please tell me.

MasqMail does not listen to a port to the internet (unless you manage to configure it to do so... which is pretty senseless anyway), so that door is closed.

MasqMail is designed to run with an own user and group id. It uses root permission only when necessary, ie. to open a listening port and to change identity to some user when it delivers local mail.

Requirements

MasqMail requires glib 1.2 or greater. You may find this strange since glib was originally written for gimp and is used by gtk, but glib does not necessarily have to do with GUIs. It has some useful list and string functions, and I use only these. This may change in the future when I write my own utilities.

I developed MasqMail with a SuSE 6.x distribution, Kernel 2.2.x and glibc (libc6) with egcs. There have been reports that it compiles and runs under Redhat, Debian, slackware, with libc5 (since 0.0.4) and Kernel 2.0.x.

Download

MasqMail-0.0.10.tar.gz (about 119K)
MasqMail-0.0.9.tar.gz (about 113K)
MasqMail-0.0.8.tar.gz (about 99K)

ChangeLog

Roadmap

MasqMail will be optimized for slow connections. It uses ESMTP pipelining both when sending and receiving and sends all messages to a single host in a single connection.

Apart from the missing things mentioned above, I plan to implement the following features:

  • an integrated pop3 client
  • initiate connections on its own
  • an interface to the masqdialer system (mserver) as an option
  • possibly an integrated pop3 server.

Mailing List

There is now a Mailing List for MasqMail. To subscribe or to view the archive use the link.

Bugs and Feedback

Since MasqMail is very young, bugs are quite probable. If you encounter one, send it to me. Please tell me the versions of:

  • MasqMail
  • libc
  • OS (Linux) (use uname -a)
  • glib (use glib-config --version)
  • the compiler (use gcc -v)

If not already so, set the debug level to at least 5 and send the debug.log (only the important part please...).

To improve MasqMail, bug reports are really needed! The more bug reports I get the more stable it will get.

Suggestions are always welcome. If there is a feature that you would like to have in MasqMail, contact me, and I will think about it. You are also welcome to send patches, but at this stage of development there will be no CVS access.

If you are using it and are happy with, you can also write that to me. To make me happy.

If you are not happy with it, you can keep that for yourself. Before you send some flame, please read these pages very carefully again.


Oliver Kurth
Last modified: Mon Feb 28 22:34:51 CET 2000
This page was created using Genpage - Version: 1.0.6