Alle 17:49, lunedì 22 agosto 2005, Tom Collins ha scritto:
> On Aug 22, 2005, at 6:58 AM, Riccardo Bini wrote:
> > ok.. with 5.4.12 works but not as I would want 8-)
> > I mean when vdelivermail deliver the email and the user is over system
> > quota
> > vdeliver return a "deferral: system_error/".
> > vdelivermail would have to return "user is over quota" with an
> > 'deliver_quota_warning'. Instead the email keep in queue like an error
> > message.
>
> Well, there's a good chance it won't be able to deliver the over quota
> message if the user has hit their system quota.
>
> I'll take a look at the code, and see if we can catch the system quota
> error and do an overquota bounce instead of a deferral.
>

Well, if the user is in overquota, generate a overquota bounce but it's 
impossible (I think) to deliver the quota warn message.. but if he is in 
grace time, it's possible to send the quota warn message??

BWT: there is a bug in vdelivermail.c:
the 'domains' dir is incorrect.

I attach the patch. (5.4.12)

Thx
Rick
--- vdelivermail.c.orig 2005-08-22 18:25:41.000000000 +0200
+++ vdelivermail.c      2005-08-22 18:22:48.000000000 +0200
@@ -550,7 +550,7 @@
                 sprintf(tmp_file, "%s/.over-quota.msg",TheDomainDir);
                 if ( (fs=fopen(tmp_file, "r")) == NULL ) {
                     /* if no domain over quota then check in vpopmail dir */
-                    sprintf(tmp_file, "%s/domains/.over-quota.msg",VPOPMAILDIR);
+                    sprintf(tmp_file, "%s/%s/.over-quota.msg",VPOPMAILDIR,DOMAINS_DIR);
                     fs=fopen(tmp_file, "r");
                 }

@@ -580,7 +580,7 @@
             sprintf(tmp_file, "%s/.over-quota.msg",TheDomainDir);
             if ( (fs=fopen(tmp_file, "r")) == NULL ) {
                 /* if no domain over quota then check in vpopmail dir */
-                sprintf(tmp_file, "%s/domains/.over-quota.msg",VPOPMAILDIR);
+                sprintf(tmp_file, "%s/%s/.over-quota.msg",VPOPMAILDIR,DOMAINS_DIR);
                 fs=fopen(tmp_file, "r");
             }

@@ -946,7 +946,7 @@
         sprintf(tmp_file, "%s/.no-user.msg",TheDomainDir);
         if ( (fs=fopen(tmp_file, "r")) == NULL ) {
             /* if no domain no user then check in vpopmail dir */
-            sprintf(tmp_file, "%s/domains/.no-user.msg",VPOPMAILDIR);
+            sprintf(tmp_file, "%s/%s/.no-user.msg",VPOPMAILDIR,DOMAINS_DIR);
             fs=fopen(tmp_file, "r");
         }
         if ( fs == NULL ) {
@@ -1016,7 +1016,7 @@
            (stat(quotawarnmsg, &sb) != 0)) {

         /* if that fails look in vpopmail dir */
-        sprintf(quotawarnmsg, "%s/domains/.quotawarn.msg", VPOPMAILDIR);
+        sprintf(quotawarnmsg, "%s/%s/.quotawarn.msg", VPOPMAILDIR, DOMAINS_DIR);
         if ( ((read_fd = open(quotawarnmsg, O_RDONLY)) < 0) ||
               (stat(quotawarnmsg, &sb) != 0)) {
             return 0;

Reply via email to