User, not system, error message for VRFY defer.
authorPhilip Hazel <ph10@hermes.cam.ac.uk>
Thu, 16 Mar 2006 11:14:46 +0000 (11:14 +0000)
committerPhilip Hazel <ph10@hermes.cam.ac.uk>
Thu, 16 Mar 2006 11:14:46 +0000 (11:14 +0000)
doc/doc-txt/ChangeLog
src/src/smtp_in.c
test/confs/0042
test/scripts/0000-Basic/0042
test/stderr/0042
test/stdout/0042

index f28bb3286add5c52c348fd7c2cdd7c09a98ec191..1545e72c4069ebc538507cf2bf60bc510e8dc230 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.327 2006/03/09 15:10:16 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.328 2006/03/16 11:14:46 ph10 Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
@@ -303,6 +303,9 @@ PH/58 Allow for the insertion of a newline as well as a space when a string
 PH/59 Added the following errors that can be detected in retry rules: mail_4xx,
       data_4xx, lost_connection, tls_required.
 
+PH/60 When a VRFY deferred or FAILED, the log message rather than the user
+      message was being sent as an SMTP response.
+
 
 Exim version 4.60
 -----------------
index 1ed5183a6341f08d6454a4f94e43cc159be3ec34..e832358363fdf7da7059ced753d6dace571eebbc 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/smtp_in.c,v 1.36 2006/03/08 10:49:18 ph10 Exp $ */
+/* $Cambridge: exim/src/src/smtp_in.c,v 1.37 2006/03/16 11:14:46 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -3208,14 +3208,14 @@ while (done <= 0)
           break;
 
           case DEFER:
-          s = (addr->message != NULL)?
-            string_sprintf("451 <%s> %s", address, addr->message) :
+          s = (addr->user_message != NULL)?
+            string_sprintf("451 <%s> %s", address, addr->user_message) :
             string_sprintf("451 Cannot resolve <%s> at this time", address);
           break;
 
           case FAIL:
-          s = (addr->message != NULL)?
-            string_sprintf("550 <%s> %s", address, addr->message) :
+          s = (addr->user_message != NULL)?
+            string_sprintf("550 <%s> %s", address, addr->user_message) :
             string_sprintf("550 <%s> is not deliverable", address);
           log_write(0, LOG_MAIN, "VRFY failed for %s %s",
             smtp_cmd_argument, host_and_ident(TRUE));
index 15e1e67299b6810c570c378b7dc17c0bfe08b480..4d994e4c5d4d74a7e7c83b69856befd12e2c61b6 100644 (file)
@@ -24,6 +24,11 @@ fail_remote_domains:
   domains = ! +local_domains
   data = :fail: unrouteable mail domain "$domain"
 
+fail_expansion:
+  driver = redirect
+  local_parts = expan
+  data = ${if with syntax error
+
 localuser:
   driver = accept
   local_parts = userx
index a0b2e4f2c2567755383cd2f13991979dcf1fbd71..2c8975a69953f0b626ccf8a535c09482e4a7c0f8 100644 (file)
@@ -2,4 +2,5 @@
 exim -bh 1.1.1.1
 vrfy userx@test.ex
 vrfy junkjunk@test.ex
+vrfy expan@test.ex
 quit
index 2c4cc1dc86b710af223c446c3099638ba12605c9..740dc1bfad4afc11aa1ebcf683789e453b885459 100644 (file)
@@ -13,6 +13,7 @@
 >>> routing userx@test.ex
 >>> test.ex in "test.ex"? yes (matched "test.ex")
 >>> test.ex in "! +local_domains"? no (matched "! +local_domains")
+>>> userx in "expan"? no (end of list)
 >>> userx in "userx"? yes (matched "userx")
 >>> calling localuser router
 >>> routed by localuser router
 >>> routing junkjunk@test.ex
 >>> test.ex in "test.ex"? yes (matched "test.ex")
 >>> test.ex in "! +local_domains"? no (matched "! +local_domains")
+>>> junkjunk in "expan"? no (end of list)
 >>> junkjunk in "userx"? no (end of list)
 >>> no more routers
 LOG: VRFY failed for junkjunk@test.ex H=[1.1.1.1]
+>>> processing "accept"
+>>> accept: condition test succeeded
+>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+>>> routing expan@test.ex
+>>> test.ex in "test.ex"? yes (matched "test.ex")
+>>> test.ex in "! +local_domains"? no (matched "! +local_domains")
+>>> expan in "expan"? yes (matched "expan")
+>>> calling fail_expansion router
+>>> fail_expansion router: defer for expan@test.ex
+>>>   message: failed to expand "${if with syntax error": unknown condition "with"
index 76d3552bcea446ea095feb7d3509bf728cb88cc4..8602d02d36f35fdc260fba7d673373714fe12ea3 100644 (file)
@@ -6,4 +6,5 @@
 220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
 250 <userx@test.ex> is deliverable\r
 550 <junkjunk@test.ex> Unrouteable address\r
+451 Cannot resolve <expan@test.ex> at this time\r
 221 the.local.host.name closing connection\r