Attached is a patch that allows you to customize the quota-warning from
and subject by adding two aditional control files:

quotafrom
quotasub

-- 
Jose Celestino <[EMAIL PROTECTED]> SysAdmin::SAPO.pt http://www.sapo.pt
-----------------------------------------------------
"Lately, the only thing keeping me from becoming a serial killer is my distaste
for manual labor."        -- Dilbert
diff -N -c -r qmail-1.03/Makefile qmail-1.03.japc/Makefile
*** qmail-1.03/Makefile 2002-10-19 17:27:20.000000000 +0100
--- qmail-1.03.japc/Makefile    2002-10-19 17:37:45.000000000 +0100
***************
*** 1712,1718 ****
        ./load qmail-quotawarn newfield.o now.o date822fmt.o case.a \
        fd.a wait.a open.a myctime.o case.a getln.a sig.a open.a seek.a \
        lock.a datetime.a env.a stralloc.a alloc.a strerr.a substdio.a \
!       error.a str.a fs.a
  
  qmail-quotawarn.o: \
  compile qmail-quotawarn.c readwrite.h sig.h byte.h case.h datetime.h \
--- 1712,1718 ----
        ./load qmail-quotawarn newfield.o now.o date822fmt.o case.a \
        fd.a wait.a open.a myctime.o case.a getln.a sig.a open.a seek.a \
        lock.a datetime.a env.a stralloc.a alloc.a strerr.a substdio.a \
!       error.a str.a fs.a auto_qmail.o control.o scan_ulong.o
  
  qmail-quotawarn.o: \
  compile qmail-quotawarn.c readwrite.h sig.h byte.h case.h datetime.h \
diff -N -c -r qmail-1.03/qmail-quotawarn.c qmail-1.03.japc/qmail-quotawarn.c
*** qmail-1.03/qmail-quotawarn.c        2002-10-19 17:27:20.000000000 +0100
--- qmail-1.03.japc/qmail-quotawarn.c   2002-10-19 17:36:04.000000000 +0100
***************
*** 24,29 ****
--- 24,31 ----
  #include "myctime.h"
  #include "qmail-ldap.h"
  #include "date822fmt.h"
+ #include "control.h"
+ #include "auto_qmail.h"
  
  /* global vars */
  stralloc warning={0};
***************
*** 140,145 ****
--- 142,150 ----
     struct datetime dt;
     struct stat st;
     substdio ssout;
+    stralloc quotafrom = {0};
+    stralloc quotasub = {0};
+    stralloc controls = {0};
   
     sig_alarmcatch(sigalrm);
     if (chdir(fn) == -1) {
***************
*** 149,155 ****
     }
     
     check_maildir();
!    
     /* set To: From: Delivered-to: Return-Path: UFLINE Date: Message-ID: */
     if (! (t = env_get("RECIPIENT") ) )
        strerr_die1x(111,"ARRG: RECIPIENT not present (LDAP-ERR #5.1.2)");
--- 154,177 ----
     }
     
     check_maildir();
! 
!    if (!stralloc_copys(&controls,auto_qmail)) temp_nomem();
!    if (!stralloc_cats(&controls,"/control/quotafrom")) temp_nomem();
!    if (!stralloc_0(&controls)) temp_nomem();
! 
!    if (control_readline(&quotafrom,controls.s) != 1) {
!      if (!stralloc_copys(&quotafrom,"Qmail-QUOTAGUARD <MAILER-DAEMON@")) 
temp_nomem();
!      if (!stralloc_cat(&quotafrom,&host)) temp_nomem();
!      if (!stralloc_cats(&quotafrom,">\n")) temp_nomem();
!    }
! 
!    if (!stralloc_copys(&controls,auto_qmail)) temp_nomem();
!    if (!stralloc_cats(&controls,"/control/quotasub")) temp_nomem();
!    if (!stralloc_0(&controls)) temp_nomem();
! 
!    if (control_readline(&quotasub,controls.s) != 1)
!      if (!stralloc_copys(&quotasub,"QUOTA-WARNING!")) temp_nomem();
! 
     /* set To: From: Delivered-to: Return-Path: UFLINE Date: Message-ID: */
     if (! (t = env_get("RECIPIENT") ) )
        strerr_die1x(111,"ARRG: RECIPIENT not present (LDAP-ERR #5.1.2)");
***************
*** 157,165 ****
     if (!stralloc_cats(&to,t)) temp_nomem();
     if (!stralloc_cats(&to,"\n")) temp_nomem();
  
!    if (!stralloc_copys(&from,"From: Qmail-QUOTAGUARD <MAILER-DAEMON@")) temp_nomem();
!    if (!stralloc_cat(&from,&host)) temp_nomem();
!    if (!stralloc_cats(&from,">\n")) temp_nomem();
  
     if (! (t = env_get("DTLINE") ) )
        strerr_die1x(111,"ARRG: DTLINE not present (LDAP-ERR #5.1.4)");
--- 179,187 ----
     if (!stralloc_cats(&to,t)) temp_nomem();
     if (!stralloc_cats(&to,"\n")) temp_nomem();
  
!    if (!stralloc_copys(&from,"From: ")) temp_nomem();
!    if (!stralloc_cat(&from,&quotafrom)) temp_nomem();
!    if (!stralloc_cats(&from,"\n")) temp_nomem();
  
     if (! (t = env_get("DTLINE") ) )
        strerr_die1x(111,"ARRG: DTLINE not present (LDAP-ERR #5.1.4)");
***************
*** 211,217 ****
     /* To: From: and Subject: */
     if (substdio_put(&ssout,to.s,to.len)) goto fail;
     if (substdio_put(&ssout,from.s,from.len)) goto fail;
!    if (substdio_puts(&ssout,"Subject: QUOTA-WARNING!\n")) goto fail;
     /* don't forget the single \n */
     if (substdio_puts(&ssout,"\n")) goto fail;
     /* the Warning */
--- 233,241 ----
     /* To: From: and Subject: */
     if (substdio_put(&ssout,to.s,to.len)) goto fail;
     if (substdio_put(&ssout,from.s,from.len)) goto fail;
!    if (substdio_puts(&ssout,"Subject: ")) goto fail;
!    if (substdio_put(&ssout,quotasub.s,quotasub.len)) goto fail;
!    if (substdio_puts(&ssout,"\n")) goto fail;
     /* don't forget the single \n */
     if (substdio_puts(&ssout,"\n")) goto fail;
     /* the Warning */
***************
*** 281,286 ****
--- 305,330 ----
     char *t;
     datetime_sec starttime;
     struct datetime dt;
+    stralloc quotafrom = {0};
+    stralloc quotasub = {0};
+    stralloc controls = {0};
+ 
+    if (!stralloc_copys(&controls,auto_qmail)) temp_nomem();
+    if (!stralloc_cats(&controls,"/control/quotafrom")) temp_nomem();
+    if (!stralloc_0(&controls)) temp_nomem();
+ 
+    if (control_readline(&quotafrom,controls.s) != 1) {
+      if (!stralloc_copys(&quotafrom,"Qmail-QUOTAGUARD <MAILER-DAEMON@")) 
+temp_nomem();
+      if (!stralloc_cat(&quotafrom,&host)) temp_nomem();
+      if (!stralloc_cats(&quotafrom,">\n")) temp_nomem();
+    }
+ 
+    if (!stralloc_copys(&controls,auto_qmail)) temp_nomem();
+    if (!stralloc_cats(&controls,"/control/quotasub")) temp_nomem();
+    if (!stralloc_0(&controls)) temp_nomem();
+ 
+    if (control_readline(&quotasub,controls.s) != 1)
+      if (!stralloc_copys(&quotasub,"QUOTA-WARNING!")) temp_nomem();
  
     /* set To: From: Delivered-to: Return-Path: UFLINE Date: Message-ID: */
     if (! (t = env_get("RECIPIENT") ) )
***************
*** 289,297 ****
     if (!stralloc_cats(&to,t)) temp_nomem();
     if (!stralloc_cats(&to,"\n")) temp_nomem();
  
!    if (!stralloc_copys(&from,"From: Qmail-QUOTAGUARD <MAILER-DAEMON@")) temp_nomem();
!    if (!stralloc_cat(&from,&host)) temp_nomem();
!    if (!stralloc_cats(&from,">\n")) temp_nomem();
  
     if (! (t = env_get("DTLINE") ) )
        strerr_die1x(111,"ARRG: DTLINE not present (LDAP-ERR #5.1.4)");
--- 333,341 ----
     if (!stralloc_cats(&to,t)) temp_nomem();
     if (!stralloc_cats(&to,"\n")) temp_nomem();
  
!    if (!stralloc_copys(&from,"From: ")) temp_nomem();
!    if (!stralloc_cat(&from,&quotafrom)) temp_nomem();
!    if (!stralloc_cats(&from,"\n")) temp_nomem();
  
     if (! (t = env_get("DTLINE") ) )
        strerr_die1x(111,"ARRG: DTLINE not present (LDAP-ERR #5.1.4)");
***************
*** 300,306 ****
     if (!stralloc_copys(&rpline,"Return-Path: <>\n")) temp_nomem();
  
     if (!stralloc_copys(&ufline,"From ")) temp_nomem();
!    if (!stralloc_cats(&ufline,"MAILER-DAEMON")) temp_nomem();
     if (!stralloc_cats(&ufline," ")) temp_nomem();
     starttime = now();
     datetime_tai(&dt,starttime);
--- 344,350 ----
     if (!stralloc_copys(&rpline,"Return-Path: <>\n")) temp_nomem();
  
     if (!stralloc_copys(&ufline,"From ")) temp_nomem();
!    if (!stralloc_copy(&ufline,&quotafrom)) temp_nomem();
     if (!stralloc_cats(&ufline," ")) temp_nomem();
     starttime = now();
     datetime_tai(&dt,starttime);
***************
*** 340,346 ****
     /* To: From: and Subject: */
     if (substdio_put(&ssout,to.s,to.len)) goto writeerrs;
     if (substdio_put(&ssout,from.s,from.len)) goto writeerrs;
!    if (substdio_puts(&ssout,"Subject: QUOTA-WARNING!\n")) goto writeerrs;
     /* don't forget the single \n */
     if (substdio_puts(&ssout,"\n")) goto writeerrs;
     /* the Warning */
--- 384,392 ----
     /* To: From: and Subject: */
     if (substdio_put(&ssout,to.s,to.len)) goto writeerrs;
     if (substdio_put(&ssout,from.s,from.len)) goto writeerrs;
!    if (substdio_puts(&ssout,"Subject: ")) goto writeerrs;
!    if (substdio_put(&ssout,quotasub.s,quotasub.len)) goto writeerrs;
!    if (substdio_puts(&ssout,"\n")) goto writeerrs;
     /* don't forget the single \n */
     if (substdio_puts(&ssout,"\n")) goto writeerrs;
     /* the Warning */
diff -N -c -r qmail-1.03/qmail-showctl.c qmail-1.03.japc/qmail-showctl.c
*** qmail-1.03/qmail-showctl.c  2002-10-19 17:27:20.000000000 +0100
--- qmail-1.03.japc/qmail-showctl.c     2002-10-19 17:30:03.000000000 +0100
***************
*** 294,299 ****
--- 294,302 ----
    do_lst("ldapclusterhosts","No alternate MailHosts for clustering listed.", 
"Alternate MailHosts for clustering: ", "");
  
    do_lst("quotawarning","No quotawarning.","","");
+   do_str("quotafrom",0,"'Qmail-QUOTAGUARD <MAILER-DAEMON@HOST'","From when sending 
+quota warnings is ");
+   do_str("quotasub",0,"'QUOTA-WARNING!'","Subject when sending quota warnings is ");
+ 
    do_lst("custombouncetext","No custombouncetext.","","");
    do_int("maxrcptcount","0",""," RCPT TOs are accepted before sending 553 (0 = 
off)");
    do_int("tarpitcount","0",""," RCPT TOs are accepted before tarpitting (0 = off)");
***************
*** 353,358 ****
--- 356,363 ----
      if (str_equal(d->d_name,"ldapgid")) continue;
      if (str_equal(d->d_name,"custombouncetext")) continue;
      if (str_equal(d->d_name,"quotawarning")) continue;
+     if (str_equal(d->d_name,"quotafrom")) continue;
+     if (str_equal(d->d_name,"quotasub")) continue;
      if (str_equal(d->d_name,"tarpitcount")) continue;
      if (str_equal(d->d_name,"tarpitdelay")) continue;
      if (str_equal(d->d_name,"badrcptto")) continue;

Reply via email to