diff options
-rw-r--r-- | doc/doc-docbook/spec.xfpt | 9 | ||||
-rw-r--r-- | src/src/spool_in.c | 6 | ||||
-rw-r--r-- | src/src/spool_out.c | 4 |
3 files changed, 17 insertions, 2 deletions
diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt index e61bc1e6e..6c3d155d9 100644 --- a/doc/doc-docbook/spec.xfpt +++ b/doc/doc-docbook/spec.xfpt @@ -31196,7 +31196,11 @@ it always return &"true"& by appending &`:true`& to the username. .cindex "spam scanning" "returned variables" When the &%spam%& condition is run, it sets up a number of expansion -variables. These variables are saved with the received message, thus they are +variables. +.new +Except for &$spam_report$&, +.wen +these variables are saved with the received message so are available for use at delivery time. .vlist @@ -31219,6 +31223,9 @@ headers, since MUAs can match on such strings. .vitem &$spam_report$& A multiline text table, containing the full SpamAssassin report for the message. Useful for inclusion in headers or reject messages. +.new +This variable is only usable in a DATA-time ACL. +.wen .new .vitem &$spam_action$& diff --git a/src/src/spool_in.c b/src/src/spool_in.c index 1a5bf4ec8..fdc83e5a7 100644 --- a/src/src/spool_in.c +++ b/src/src/spool_in.c @@ -298,6 +298,8 @@ tls_in.ocsp = OCSP_NOT_REQ; #endif #ifdef WITH_CONTENT_SCAN +spam_bar = NULL; +spam_score = NULL; spam_score_int = NULL; #endif @@ -573,6 +575,10 @@ for (;;) if (Ustrncmp(p, "ender_set_untrusted", 19) == 0) sender_set_untrusted = TRUE; #ifdef WITH_CONTENT_SCAN + else if (Ustrncmp(p, "pam_bar ", 8) == 0) + spam_bar = string_copy(big_buffer + 10); + else if (Ustrncmp(p, "pam_score ", 10) == 0) + spam_score = string_copy(big_buffer + 12); else if (Ustrncmp(p, "pam_score_int ", 14) == 0) spam_score_int = string_copy(big_buffer + 16); #endif diff --git a/src/src/spool_out.c b/src/src/spool_out.c index 92bf0aa64..39d0fea25 100644 --- a/src/src/spool_out.c +++ b/src/src/spool_out.c @@ -218,7 +218,9 @@ if (sender_local) fprintf(f, "-local\n"); if (local_error_message) fprintf(f, "-localerror\n"); if (local_scan_data != NULL) fprintf(f, "-local_scan %s\n", local_scan_data); #ifdef WITH_CONTENT_SCAN -if (spam_score_int != NULL) fprintf(f,"-spam_score_int %s\n", spam_score_int); +if (spam_bar) fprintf(f,"-spam_bar %s\n", spam_bar); +if (spam_score) fprintf(f,"-spam_score %s\n", spam_score); +if (spam_score_int) fprintf(f,"-spam_score_int %s\n", spam_score_int); #endif if (deliver_manual_thaw) fprintf(f, "-manual_thaw\n"); if (sender_set_untrusted) fprintf(f, "-sender_set_untrusted\n"); |