Each of my users has a mailbox that contains their voice mail messages.
I want to write an application that turns on the user's message waiting
indicator if they have unread messages in their voice mail mailbox.  In
order to do so, I need to know if they have any unread messages.

I wrote a perl script that uses the IMAP protocol to do this for myself.
In order to get this info for a user, my perl script has to log into the
cyrus server as the user.  So my script needs to know the password for
each user.  This is pretty unacceptable from a security perspective, my
script would have to know the passwords of every user it was providing
service to.

Is there a way to create a user that has access to the unseen msg count
for other users, but nothing else?  (eg, would not be able to actually
read any users messsages). That way if the password was compromised, the
only thing that could be done with it is to find out how many unseen
msgs other people have.  Is it possible to change from one user's
mailbox to another users's mail via the IMAP protocol?

The other way I thought of to solve this problem is to write a program
that runs on the cyrus server itself, as user cyrus, and then walks
through the mailstore, reading the cyrus.index and cyrus.seen files, and
figuring out which users have unseen msgs in their voice mail mailbox.
Technically this will work, but I'd rather have my app run on another
server and use the IMAP protocol to get this info, rather than run on
the cyrus imap server itself, and have implementation specific knowledge
of the cyrus mailstore.

Any advice or ideas?

Don Jackson

Reply via email to