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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Ken Murchison Sent: Wednesday, June 09, 2004 3:17 PM To: Jamie Davey Cc: [EMAIL PROTECTED] 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 proxy.
# Warning messages if (@warn) { open(DELIVER, "| $deliverprog -q -l"); print DELIVER "MAIL FROM:<[EMAIL PROTECTED]>\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-- http://www.oceana.com/~ken/ksm.pgp --- 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
--- 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
-- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp --- 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