deliver -q won't ignore quotas

Ken Murchison ken at
Tue Jun 15 21:55:20 EDT 2004

Robert Covell wrote:

> We are doing something similar but opening deliver a bit different (with the
> user name and -q).  Before we put this in production would the following be
> correct (the previous open of deliver is commented out):

No, the commented out version is correct.  The difference being that 
Jamie is using the '-l' option which means that the client is speaking 
LMTP directly (with deliver being a middle-man).  In your case, you're 
just telling deliver what to do and it creates the LMTP session with the 
appropriate commands/arguments.

> //$MP = "/usr/local/cyrus/bin/deliver -q $user";
> $MP = "/usr/local/cyrus/bin/deliver $user IGNOREQUOTA";
> $fp = popen($MP,"w");
> fputs($fp, $toheader);
> fputs($fp, $fromheader);
> fputs($fp, $replytoheader);
> fputs($fp, $dateheader);
> fputs($fp, $subjectheader);
> fputs($fp, "$message");
> pclose($fp);
> Thanks,
> Bob
>>-----Original Message-----
>>From: owner-info-cyrus at
>>[mailto:owner-info-cyrus at]On Behalf Of Ken Murchison
>>Sent: Wednesday, June 09, 2004 3:17 PM
>>To: Jamie Davey
>>Cc: info-cyrus at
>>Subject: Re: deliver -q won't ignore quotas
>>Jamie Davey wrote:
>>>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
>>If you're going to speak LMTP directly (-l option), then no other
>>options apply and you need to add the IGNOREQUOTA protocol element
>>yourself (see below).  Actually, if you're writing your own LMTP client,
>>then talk to lmtpd directly instead of using deliver as a pass-through
>>># Warning messages
>>>if (@warn) {
>>>   open(DELIVER, "| $deliverprog -q -l");
>>>   print DELIVER "MAIL FROM:<postmaster\>\n";
>>>   foreach $warnuser (@warn) {
>>>       print DELIVER "RCPT TO:<$warnuser>\n";
>>This should be "RCPT TO:<$warnuser> IGNOREQUOTA\n"
>>>   };
>>>   print DELIVER "DATA\n";
>>>   print DELIVER <<EOF;
>>Kenneth Murchison     Oceana Matrix Ltd.
>>Software Engineer     21 Princeton Place
>>716-662-8973 x26      Orchard Park, NY 14127
>>--PGP Public Key--
>>Cyrus Home Page:
>>Cyrus Wiki/FAQ:
>>List Archives/Info:
> ---
> Cyrus Home Page:
> Cyrus Wiki/FAQ:
> List Archives/Info:

Kenneth Murchison     Oceana Matrix Ltd.
Software Engineer     21 Princeton Place
716-662-8973 x26      Orchard Park, NY 14127
--PGP Public Key--
Cyrus Home Page:
Cyrus Wiki/FAQ:
List Archives/Info:

More information about the Info-cyrus mailing list