imap-vpop: virtual user interface for UW-imap server

drh.net

David Harris, dharris@

Posted January 11, 2000.
Updated January 11, 2000.

Quick Summary
This is a patch to the UW-IMAP server which allows it to authenticate virtual users and system users in the same IMAP daemon. A C interface is provided for hooking in an authentication routine for the virtual users. Hopefully others will develop and contribute interfaces for reading virtual users from databases, flat files, and an external program.

Available for consulting work

I am currently available for consulting work. For consulting, I am happy to telecommute or come to your site for a period of time.

For more information about my skills and experience, view my statement of consulting capabilities or contact me for more information.

Back to davideous.com home.


 
Important Note: This software is not supported by David Harris.
I simply don't have the time right now. Rather, I'm posting my work and hoping that others will add to it and contribute their improvements. A little open-source community devoted to single-uid uwimap solutions will hopefully develop here. Read more about this in the "description" section below.


1. Description

What is this?

This software provides a way to create virtual e-mail users which are authenticated out of some kind of backend database for UW-IMAP. On large mail servers it is far from ideal to create a unix login account for each e-mail user. This patch allows you to run all of your e-mail users, if you wish, under a single userid. This is sometimes called a single-uid e-mail setup.

Right now, this is not a "for the newbies" solution -- you can't apply the patches and follow the install document. I have created the ties into UW-IMAP for authenticating virtual users and defined a C interface for authenticating those virtual users. But you need to create a C function that can authenticate a virtual user. From this C function you do whatever you want such as querying a database.

Hopefully people will contribute various backend C functions for various databases.

Why don't you support this? What does that mean?

I can not support this software simply because I don't have the time. I am 100% all-full-up with running a startup web hosting company, drh.net.

The patch I developed had an authentication backend function which is very specific for my web hosting setup. To make this of general use to the average user, there need to be some example C backend authentication functions. That's where the Bazaar style open source project kicks in -- i'm posting what i have right now, hoping that people who have the knowledge and the need to extend this will. And that they will contribute back what they have developed. Then, we will have something useful to the general user.

Okay, how can I help?

First, subscribe to the development list. Then, download the patch as I have it and develop your own C backend and post that to the list. It will be archived on this website, and I'll link to it from the home page if it is of substantial value. Then, stay on the list and support people that try to use your patch.

Perhaps someday I'll be able to step back in and gather everything together into a nice easy-to-use package with clean documentation and install instructions. Or perhaps someone who has contributed will step up to be the maintainer of this.. and I'll give them control over this website.


2. The Development List-serv

Here is the development list-serv. Expect that traffic will be very light at first. This is an ezmlm list.

Send posts to:

  • imapvpop @ davideous.com
To subscribe and unsubscribe, respectively, send e-mail to: Here are the archives:

3. The Actual Stuff

This section of the web page will be a summary of the project. Mostly links to important emails in the archive and downloadable patches.

My original work

Why getpwnam replacements don't work, IMO. Other people's work

When this appears, I'll link to it here.

Related work


4. Change log

Here is a changelog of the updates to this page and these patches:

January 11, 2000

  • First posting.

5. Disclaimer

THIS SOFTWARE IS PROVIDED BY DAVID R. HARRIS "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DAVID R. HARRIS OR HIS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.