Subject: announcing: IMAP toolkit 4.4

From: Mark Crispin <[email-masked]>
Date: Tue, 8 Sep 1998 15:25:42 -0700 (PDT)

ftp://ftp.cac.washington.edu/mail/imap-4.4.tar.Z

imap-4.4 is a maintenace update.  It fixes the following bugs in imap-4.3,
which was distributed with Pine 4.03:
 1) international character searching did not handle MIME2 headers properly
 2) crashes if the first UID in a UID sequence range did not correspond to a
     message
 3) no messages selected if neither UID in a UID sequence range corresponded
     to a message
 4) memory leak in local news spool access each time the ACTIVE file was
     scanned for a valid news group.

Bugs (2) and (3) prevented the use of imap-4.3's imapd with Netscape
Messenger and Microsoft's Outlook.

-- Mark --

* RCW 19.149 notice: This email address is located in Washington State.	*
* Unsolicited commercial email may be billed $500 per message.		*
Science does not emerge from voting, party politics, or public debate.

-----------------------------------------------------------------
 For information about this mailing list, and its archives, see: 
 http://www.washington.edu/imap/imap-list.html
-----------------------------------------------------------------

---

From: Lai Yiu Fai <[email-masked]>
Date: Thu, 19 Nov 1998 15:42:34 +0800

Hi All,

How is the support of MAILBOX-REFERRALS or LOGIN-REFERRALS?  I found it is
announced in CAPABILITY in imapd-4.4.but no document talking about how to
configure it.  PINE 4.0x was built from c-client,  should it support these
extension as well?

Rgds,
=======================================================================
Lai Yiu Fai                       |  Tel.:       (852) 2358-6202
Centre of Computing Services      |  Fax.:       (852) 2358-2737
 & Telecommunications             |  E-mail:     [email-masked]
                                  |
The Hong Kong University of       |  Clear Water Bay,
Science & Technology              |  Kowloon, Hong Kong.

------------------------------------------------------------------
 For information about this mailing list, and its archives, see: 
 http://www.washington.edu/imap/c-client-list.html
------------------------------------------------------------------

---

From: Mark Crispin <[email-masked]>
Date: Wed, 18 Nov 1998 23:52:25 -0800 (PST)

> configure it.  PINE 4.0x was built from c-client,  should it support these

There is full client support of referrals.

Server referrals require an external database which you have to write the code
to handle yourself.

---

From: Lai Yiu Fai <[email-masked]>
Date: Thu, 19 Nov 1998 16:12:40 +0800

> Server referrals require an external database which you have to write the code

I can't find any hook in c-client to link the external database for referrals
support.  It seems the related code appears on "./c-client/imap4r1.c" only

	...
      else if (!strcmp (t,"MAILBOX-REFERRALS")) LOCAL->use_mbx_ref = T;
      else if (!strcmp (t,"LOGIN-REFERRALS")) LOCAL->use_log_ref = T;
	...

and no where the variable "use_mbx_ref" or "use_log_ref" found.  Could you
give more hints how can be done?  Actually, I study whether it's possible
to link to our LDAP server for users mailbox location.

Thanks!

Rgds,

---

From: Mark Crispin <[email-masked]>
Date: Thu, 19 Nov 1998 00:19:29 -0800 (PST)

On Thu, 19 Nov 1998 16:12:40 +0800, Lai Yiu Fai wrote:
> I can't find any hook in c-client to link the external database for
> referrals support.

You have to write the server code yourself in a mailbox format driver that you
write to replace the drivers supplied in c-client.  Basically, in the mailbox
driver you write to be referral-enabled, you set LATT_REFERRAL for any LIST or
LSUB results that has a referral, and for any operation that triggers a
referral, you do an mm_notify() even with the text of the referral.

You don't need to change imapd in any way; all the work is done in the driver.

> It seems the related code appears on "./c-client/imap4r1.c" only
> and no where the variable "use_mbx_ref" or "use_log_ref" found.

You didn't look carefully enough.  use_mbx_ref is used in imap_list_work() to
convert LIST to RLIST and LSUB to RLSUB.  All other referral handling happens
whether or not the capability is enabled.

If you want to receive referrals in your client, you arm an imapreferral_t
callback via SET_IMAPREFERRAL.  Look at the Pine source code to see how this
is done.

---

From: Lai Yiu Fai <[email-masked]>
Date: Thu, 19 Nov 1998 17:32:10 +0800

> whether or not the capability is enabled.

Ohh. Sorry, I miss that. However, I would rather interest about LOGIN-REFERRALS.
It seems to be much simpler solution and helps to distribute users INBOX and
their mailboxs into other servers. Right now, we suffer from scalability
problem on single IMAP server for large no. of users.  Found "LOGIN-REFERRALS"
taken place right after LOGIN or AUTH command, and it doesn't relate to any
mbox driver.  So, how can I add hook to the external database for
LOGIN-REFERRALS?

Thanks very much again for your reply.
Rgds,

---

From: Mark Crispin <[email-masked]>
Date: Thu, 19 Nov 1998 10:40:46 -0800 (PST)

On Thu, 19 Nov 1998 17:32:10 +0800, Lai Yiu Fai wrote:
> So, how can I add hook to the external database for
> LOGIN-REFERRALS?

You should write your own log_xxx.c file (substitute any three letters for
"xxx") in place of the log_std.c or whatever is used by your particular port.
This is set by LOGINPW=std (or other settings for that port in the c-client
Makefile).

This implements a loginpw() routine which in the most basic form is something
like:

long loginpw (struct passwd *pw,int argc,char *argv[])
{
  return !(setgid (pw->pw_gid) || initgroups (pw->pw_name,pw->pw_gid) ||
	   setuid (pw->pw_uid));
}

What you need to do is decide what to do for the particular UID (pw->pw_uid)
and do an mm_log() if you want a referral.  Either do
	mm_log (message,NIL);
for a referral that still does an OK to LOGIN or AUTHENTICATE or
	mm_log (message,ERROR);
for a referral that returns a NO and does not log in.

---

From: John Hayward <[email-masked]>
Date: Mon, 31 May 1999 16:33:25 -0500 (CDT)

If this is the wrong place to post this quiestion please point me in
the correct direction.

We are evaluating various e-mail clients and systems this summer and
will be implementing something new.  The new enviornment is using an
IMAP server with various clients.  The IMAP server from UW seems to have
good performance, possible to have individual quota facilities on the
folder area (under unix logins).  The clients we would like to have good
interoperation with are pine (for unix types), Pegasus (verison 3.11
finally has imap support), netscape, etc.

One major drawback from using the UW imap server is that with unix mail
box there seems to be no support for subfolders.  It appears that Netscape
and Pegasus have support for subfolders and that Pine and Pegasus have 
support for directories as does UW imap server.

Has anyone thougth about modifing the imap server with unix mail boxes to
do the following:
o Never show files which start with a . (this way a .forward file in
  an mail account's home directory will not show up as a folder if the
  place where mail folders are stored are the home directory).
o A "sub folder" of folder X would be a directory named .X
o The rest of required things so that when you delete a folder with a sub
  directory the sub directory is deleted etc.

If this is too much of a hack or too complicated is there a way to have
the INBOX be unix mailbox but folders be some other format which support
subfolders?

Thanks for suggestions and pointers.
johnh...

--