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

Reply via email to