Here is a patch that turns autoresonder into vacation.
Someone suggested using directory to do this. Thanks.
Now, someone please fix the GUI to allow this as an option so one can have a
choice to receive the e-mail or not.
--- autorespond.c.orig Fri Apr 27 14:13:52 2001
+++ autorespond.c.new Fri Apr 27 14:18:49 2001
@@ -125,13 +125,6 @@
exit(0);
}
-
- if ( check_local_user(ActionUser) ) {
- fprintf(actout, "<h2>%s %s</h2>\n", get_html_text("175"),
ActionUser);
- addautorespond();
- exit(0);
- }
-
if ( strlen(ActionUser) == 0 ) {
fprintf(actout, "<h2>%s</h2>\n", get_html_text("176"));
addautorespond();
@@ -173,14 +166,19 @@
if ( (fs = fopen(TmpBuf, "w")) == NULL ) ack("123", 123);
- fprintf(fs,
-"|%s/autorespond 10000 5 %s/%s/message %s/%s\n",
- AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2);
-
- if ( strlen(Newu) > 0 ) {
- fprintf(fs, "&%s\n", Newu);
+ if ( check_local_user(ActionUser) ) {
+ fprintf(fs, "|%s/autorespond 10000 5 %s/%s/message
%s/%s\n%s/%s/Maildir/",
+ AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2,
RealDir, ActionUser);
+ }
+ else {
+ fprintf(fs, "|%s/autorespond 10000 5 %s/%s/message %s/%s\n",
+ AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2);
}
- fclose(fs);
+
+ if ( strlen(Newu) > 0 ) {
+ fprintf(fs, "&%s\n", Newu);
+ }
+ fclose(fs);
/*
* Make the autoresponder message file
@@ -299,9 +297,14 @@
sprintf(TmpBuf, ".qmail-%s", ActionUser);
if ( (fs = fopen(TmpBuf, "w")) == NULL ) ack("123", 123);
- fprintf(fs,
-"|%s/autorespond 10000 5 %s/%s/message %s/%s\n",
- AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2);
+ if ( check_local_user(ActionUser) ) {
+ fprintf(fs, "|%s/autorespond 10000 5 %s/%s/message
%s/%s\n%s/%s/Maildir/",
+ AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2,
RealDir, ActionUser);
+ }
+ else {
+ fprintf(fs, "|%s/autorespond 10000 5 %s/%s/message
%s/%s\n",
+ AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2);
+ }
if ( strlen(Newu) > 0 ) {
fprintf(fs, "&%s\n", Newu);
[root@umail2 qmailadmin-0.45]# cp autorespond.c autorespond.c.new
cp: overwrite `autorespond.c.new'? y
[root@umail2 qmailadmin-0.45]# diff -u autorespond.c.orig autorespond.c.new
--- autorespond.c.orig Fri Apr 27 14:13:52 2001
+++ autorespond.c.new Fri Apr 27 15:03:20 2001
@@ -125,13 +125,6 @@
exit(0);
}
-
- if ( check_local_user(ActionUser) ) {
- fprintf(actout, "<h2>%s %s</h2>\n", get_html_text("175"),
ActionUser);
- addautorespond();
- exit(0);
- }
-
if ( strlen(ActionUser) == 0 ) {
fprintf(actout, "<h2>%s</h2>\n", get_html_text("176"));
addautorespond();
@@ -173,9 +166,14 @@
if ( (fs = fopen(TmpBuf, "w")) == NULL ) ack("123", 123);
- fprintf(fs,
-"|%s/autorespond 10000 5 %s/%s/message %s/%s\n",
- AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2);
+ if ( check_pop_user(ActionUser) ) {
+ fprintf(fs, "|%s/autorespond 10000 5 %s/%s/message
%s/%s\n%s/%s/Maildir/",
+ AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2,
RealDir, ActionUser);
+ }
+ else {
+ fprintf(fs, "|%s/autorespond 10000 5 %s/%s/message %s/%s\n",
+ AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2);
+ }
if ( strlen(Newu) > 0 ) {
fprintf(fs, "&%s\n", Newu);
@@ -299,9 +297,14 @@
sprintf(TmpBuf, ".qmail-%s", ActionUser);
if ( (fs = fopen(TmpBuf, "w")) == NULL ) ack("123", 123);
- fprintf(fs,
-"|%s/autorespond 10000 5 %s/%s/message %s/%s\n",
- AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2);
+ if ( check_pop_user(ActionUser) ) {
+ fprintf(fs, "|%s/autorespond 10000 5 %s/%s/message
%s/%s\n%s/%s/Maildir/",
+ AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2,
RealDir, ActionUser);
+ }
+ else {
+ fprintf(fs, "|%s/autorespond 10000 5 %s/%s/message %s/%s\n",
+ AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2);
+ }
if ( strlen(Newu) > 0 ) {
fprintf(fs, "&%s\n", Newu);
@@ -356,4 +359,14 @@
}
closedir(mydir);
+}
+
+check_pop_user( user )
+char *user;
+{
+ struct stat buf;
+ if ( stat(user, &buf) == 0 ) {
+ return(-1);
+ }
+ return(0);
}