deliver -q won't ignore quotas

Jamie Davey jamie.davey at nqe.com
Wed Jun 9 06:37:58 EDT 2004


Hi all

I am trying to get a script (derived from the archives of this list) 
running that will deliver a warning mail to users who are in danger of 
breaching / have breached their mailbox quota. The script determines the 
users affected by running the quota command and then tries to send them 
a mail using deliver with the -q directive to deliver regardless of 
their quota usage. It works fine for users who are approaching their 
full quota but not for those currently over it.

I have run the script without the deliver portion and manually sent the 
mails, again using "deliver -q -l"  and get a "452 4.2.2 Over quota" 
error which disregards the recipient. Is this a bug with deliver or am I 
doing something wrong

I'm using Cyrus 2.1.16 and the script is as follows:

#!/usr/bin/perl -w

# Settings
$quotaprog = "/usr/cyrus/bin/quota";
$deliverprog = "/usr/cyrus/bin/deliver";
$warnpct = 90;

# Lists
@warn = ();
@over = ();

# Process quota output
open(QUOTA, "$quotaprog |");
while (<QUOTA>) {
    next if /^   Quota/;
    ($junk, $pctused, $junk, $qroot) = split;
    ($junk, $user) = split /\./, $qroot;
    if ($pctused >= 100) {
        push @over, $user;
    }
    elsif ($pctused >= $warnpct) {
        push @warn, $user;
    }
}
close(QUOTA);

# Construct a date string

# Warning messages
if (@warn) {
    open(DELIVER, "| $deliverprog -q -l");
    print DELIVER "MAIL FROM:<postmaster\@nqe.com>\n";
    foreach $warnuser (@warn) {
        print DELIVER "RCPT TO:<$warnuser>\n";
    };
    print DELIVER "DATA\n";
    print DELIVER <<EOF;
From: postmaster\@nqe.com
To: quotawarning\@nqe.com
Subject: WARNING: Your mailbox is over $warnpct% quota.

Your server mailbox has reached or exceeded $warnpct% of your available 
quota
for storing messages.  This will not cause any immediate problem, but if the
size of your inbox exceeds your quota, you will not be able to receive any
new email until some messages are removed from your server mailbox, 
either by
deleting them or saving them to a local folder.

If you need assistance cleaning up your inbox, please contact the Help 
Desk on 8
225 or by email at colsupport\@nqe.com.

Thank you.
.
EOF
    close(DELIVER);
}

# Over quota messages
if (@over) {
    open(DELIVER, "| $deliverprog -q -l");
    print DELIVER "MAIL FROM:<postmaster\@nqe.com>\n";
    foreach $warnuser (@over) {
        print DELIVER "RCPT TO:<$warnuser>\n";
    };
    print DELIVER "DATA\n";
    print DELIVER <<EOF;
From: colsupport\@nqe.com
To: quotawarning\@nqe.com
Subject: URGENT: Your mailbox is over quota!!

Your server mailbox has exceeded your available quota for storing messages!
You will not be able to receive any new email until some messages are 
removed
from your server mailbox, either by deleting them or saving them to a local
folder.  If this condition persists for 5 days or more, messages to you will
begin to bounce back to the sender.  Please correct this problem as soon as
possible.

If you need assistance cleaning up your inbox, please contact the Help 
Desk on 8
225.

Thank you.
.
EOF
    close(DELIVER);
}



-- 


        Jamie Davey


          Systems Engineer
          01206 508227


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




More information about the Info-cyrus mailing list