Xavier Bestel wrote:
> Hi,
> 
> I have a small install with cyrus-imapd 2.3.14, which reads some of its
> mails with fetchmail. To limit the delay in mail delivery, fetchmail
> awakes each minute to get mails.
> What I would like is let fetchmail do that only when there's a client
> actually reading its mails, i.e. an MUA actually connected to imapd.
> 
> So, my question: how to hook a script each time a client
> connects/disconnects from imapd ?
>

Check /var/imap/proc for files. If any are present, then a client is connected. 
Write a
polling script to run out of cron that checks for this and runs fetchmail if 
appropriate.
I'll let other's comment on the soundness of this.

Semi-pseudo code.

#/bin/sh
if [ $(find /var/imap/proc -type f | wc -l) -gt 0 ]; then
  fetchmail
fi

For bonus points, you could parse the proc files and only run fetch mail for 
the users
actually connected.

find /var/imap/proc -type f | \
  xargs awk 'BEGIN{FS="\t"}{if (length($2)) print $2}' | \
  sort -u | \
  xargs <dispatch_command>

-- 
Russell A. Jackson <r...@csub.edu>
Network Analyst
California State University, Bakersfield


Attachment: signature.asc
Description: OpenPGP digital signature

----
Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

Reply via email to