diff options
44 files changed, 365 insertions, 664 deletions
diff --git a/src/src/smtp_in.c b/src/src/smtp_in.c index 04cbbe465..79a1ee02b 100644 --- a/src/src/smtp_in.c +++ b/src/src/smtp_in.c @@ -2917,7 +2917,7 @@ we have not sent a response about it yet, do so now, as a preliminary line for failures, but not defers. However, always log it for defer, and log it for fail unless the sender_verify_fail log selector has been turned off. */ -if (sender_verified_failed != NULL && +if (sender_verified_failed && !testflag(sender_verified_failed, af_sverify_told)) { BOOL save_rcpt_in_progress = rcpt_in_progress; @@ -2933,7 +2933,7 @@ if (sender_verified_failed != NULL && (sender_verified_failed->message == NULL)? US"" : string_sprintf(": %s", sender_verified_failed->message)); - if (rc == FAIL && sender_verified_failed->user_message != NULL) + if (rc == FAIL && sender_verified_failed->user_message) smtp_respond(smtp_code, codelen, FALSE, string_sprintf( testflag(sender_verified_failed, af_verify_pmfail)? "Postmaster verification failed while checking <%s>\n%s\n" diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c index f3247245d..1ce0cbe11 100644 --- a/src/src/transports/smtp.c +++ b/src/src/transports/smtp.c @@ -8,12 +8,6 @@ #include "../exim.h" #include "smtp.h" -#define PENDING 256 -#define PENDING_DEFER (PENDING + DEFER) -#define PENDING_OK (PENDING + OK) - -#define DELIVER_BUFFER_SIZE 4096 - /* Options specific to the smtp transport. This transport also supports LMTP over TCP/IP. The options must be in alphabetic order (note that "_" comes @@ -327,7 +321,7 @@ gid = gid; /* Pass back options if required. This interface is getting very messy. */ -if (tf != NULL) +if (tf) { tf->interface = ob->interface; tf->port = ob->port; @@ -346,11 +340,8 @@ host lists, provided that the local host wasn't present in the original host list. */ if (!testflag(addrlist, af_local_host_removed)) - { - for (; addrlist != NULL; addrlist = addrlist->next) - if (addrlist->fallback_hosts == NULL) - addrlist->fallback_hosts = ob->fallback_hostlist; - } + for (; addrlist; addrlist = addrlist->next) + if (!addrlist->fallback_hosts) addrlist->fallback_hosts = ob->fallback_hostlist; return OK; } @@ -458,7 +449,7 @@ for (addr = addrlist; addr; addr = addr->next) { addr->basic_errno = errno_value; addr->more_errno |= orvalue; - if (msg != NULL) + if (msg) { addr->message = msg; if (pass_message) setflag(addr, af_pass_message); @@ -610,7 +601,7 @@ if (*errno_value == 0 || *errno_value == ECONNRESET) { *errno_value = ERRNO_SMTPCLOSED; *message = US string_sprintf("Remote host closed connection " - "in response to %s%s", pl, smtp_command); + "in response to %s%s", pl, smtp_command); } else *message = US string_sprintf("%s [%s]", host->name, host->address); @@ -1471,61 +1462,9 @@ return OK; * Make connection for given message * *************************************************/ -typedef struct { - address_item * addrlist; - host_item * host; - int host_af; - int port; - uschar * interface; - - BOOL lmtp:1; - BOOL smtps:1; - BOOL ok:1; - BOOL send_rset:1; - BOOL send_quit:1; - BOOL setting_up:1; - BOOL esmtp:1; - BOOL esmtp_sent:1; - BOOL pending_MAIL:1; -#ifndef DISABLE_PRDR - BOOL prdr_active:1; -#endif -#ifdef SUPPORT_I18N - BOOL utf8_needed:1; -#endif - BOOL dsn_all_lasthop:1; -#if defined(SUPPORT_TLS) && defined(EXPERIMENTAL_DANE) - BOOL dane:1; - BOOL dane_required:1; -#endif - - int max_rcpt; - - uschar peer_offered; - uschar * igquotstr; - uschar * helo_data; -#ifdef EXPERIMENTAL_DSN_INFO - uschar * smtp_greeting; - uschar * helo_response; -#endif - - smtp_inblock inblock; - smtp_outblock outblock; - uschar buffer[DELIVER_BUFFER_SIZE]; - uschar inbuffer[4096]; - uschar outbuffer[4096]; - - transport_instance * tblock; - smtp_transport_options_block * ob; -} smtp_context; - /* Arguments: ctx connection context - message_defer return set TRUE if yield is OK, but all addresses were deferred - because of a non-recipient, non-host failure, that is, a - 4xx response to MAIL FROM, DATA, or ".". This is a defer - that is specific to the message. suppress_tls if TRUE, don't attempt a TLS connection - this is set for a second attempt after TLS initialization fails verify TRUE if connection is for a verify callout, FALSE for @@ -1541,8 +1480,7 @@ Returns: OK - the connection was made and the delivery attempted; to expand */ int -smtp_setup_conn(smtp_context * sx, BOOL * message_defer, BOOL suppress_tls, - BOOL verify) +smtp_setup_conn(smtp_context * sx, BOOL suppress_tls, BOOL verify) { #if defined(SUPPORT_TLS) && defined(EXPERIMENTAL_DANE) dns_answer tlsa_dnsa; @@ -1554,7 +1492,7 @@ int save_errno; int yield = OK; int rc; -sx->ob = (smtp_transport_options_block *)(sx->tblock->options_block); +sx->ob = (smtp_transport_options_block *) sx->tblock->options_block; sx->lmtp = strcmpic(sx->ob->protocol, US"lmtp") == 0; sx->smtps = strcmpic(sx->ob->protocol, US"smtps") == 0; @@ -1574,15 +1512,14 @@ sx->dane_required = verify_check_given_host(&sx->ob->hosts_require_dane, sx->hos #endif if ((sx->max_rcpt = sx->tblock->max_addresses) == 0) sx->max_rcpt = 999999; -sx->helo_data = NULL; sx->peer_offered = 0; sx->igquotstr = US""; +if (!sx->helo_data) sx->helo_data = sx->ob->helo_data; #ifdef EXPERIMENTAL_DSN_INFO sx->smtp_greeting = NULL; sx->helo_response = NULL; #endif -*message_defer = FALSE; smtp_command = US"initial connection"; sx->buffer[0] = '\0'; @@ -1615,7 +1552,8 @@ tls_out.ocsp = OCSP_NOT_REQ; /* Flip the legacy TLS-related variables over to the outbound set in case they're used in the context of the transport. Don't bother resetting -afterward as we're in a subprocess. */ +afterward (when being used by a transport) as we're in a subprocess. +For verify, unflipped once the callout is dealt with */ tls_modify_variables(&tls_out); @@ -1634,6 +1572,9 @@ specially so they can be identified for retries. */ if (continue_hostname == NULL) { + if (verify) + HDEBUG(D_verify) debug_printf("interface=%s port=%d\n", sx->interface, sx->port); + /* This puts port into host->port */ sx->inblock.sock = sx->outblock.sock = smtp_connect(sx->host, sx->host_af, sx->port, sx->interface, @@ -1641,8 +1582,19 @@ if (continue_hostname == NULL) if (sx->inblock.sock < 0) { - set_errno_nohost(sx->addrlist, errno == ETIMEDOUT ? ERRNO_CONNECTTIMEOUT : errno, - NULL, DEFER, FALSE); + uschar * msg = NULL; + int save_errno = errno; + if (verify) + { + msg = strerror(errno); + HDEBUG(D_verify) debug_printf("connect: %s\n", msg); + } + set_errno_nohost(sx->addrlist, + save_errno == ETIMEDOUT ? ERRNO_CONNECTTIMEOUT : save_errno, + verify ? string_sprintf("could not connect: %s", msg) + : NULL, + DEFER, FALSE); + sx->send_quit = FALSE; return DEFER; } @@ -1684,18 +1636,26 @@ if (continue_hostname == NULL) sense if helo_data contains ${lookup dnsdb ...} stuff). The expansion is delayed till here so that $sending_interface and $sending_port are set. */ - sx->helo_data = expand_string(sx->ob->helo_data); + if (sx->helo_data) + if (!(sx->helo_data = expand_string(sx->helo_data))) + if (verify) + log_write(0, LOG_MAIN|LOG_PANIC, + "<%s>: failed to expand transport's helo_data value for callout: %s", + sx->addrlist->address, expand_string_message); + #ifdef SUPPORT_I18N if (sx->helo_data) { - uschar * errstr = NULL; - if ((sx->helo_data = string_domain_utf8_to_alabel(sx->helo_data, &errstr)), errstr) - { - errstr = string_sprintf("failed to expand helo_data: %s", errstr); - set_errno_nohost(sx->addrlist, ERRNO_EXPANDFAIL, errstr, DEFER, FALSE); - yield = DEFER; - goto SEND_QUIT; - } + expand_string_message = NULL; + if ((sx->helo_data = string_domain_utf8_to_alabel(sx->helo_data, + &expand_string_message)), + expand_string_message) + if (verify) + log_write(0, LOG_MAIN|LOG_PANIC, + "<%s>: failed to expand transport's helo_data value for callout: %s", + sx->addrlist->address, expand_string_message); + else + sx->helo_data = NULL; } #endif @@ -1892,6 +1852,7 @@ else sx->inblock.sock = sx->outblock.sock = fileno(stdin); smtp_command = big_buffer; sx->host->port = sx->port; /* Record the port that was used */ + sx->helo_data = NULL; /* ensure we re-expand ob->helo_data */ } /* If TLS is available on this connection, whether continued or not, attempt to @@ -1905,7 +1866,10 @@ for error analysis. */ #ifdef SUPPORT_TLS if ( smtp_peer_options & PEER_OFFERED_TLS && !suppress_tls - && verify_check_given_host(&sx->ob->hosts_avoid_tls, sx->host) != OK) + && verify_check_given_host(&sx->ob->hosts_avoid_tls, sx->host) != OK + && ( !verify + || verify_check_given_host(&sx->ob->hosts_verify_avoid_tls, sx->host) != OK + ) ) { uschar buffer2[4096]; if (smtp_write_command(&sx->outblock, FALSE, "STARTTLS\r\n") < 0) @@ -2226,8 +2190,6 @@ SEND_QUIT: if (sx->send_quit) (void)smtp_write_command(&sx->outblock, FALSE, "QUIT\r\n"); -/*END_OFF:*/ - #ifdef SUPPORT_TLS tls_close(FALSE, TRUE); #endif @@ -2249,8 +2211,10 @@ if (sx->send_quit) if (fcntl(sx->inblock.sock, F_SETFL, O_NONBLOCK) == 0) for (rc = 16; read(sx->inblock.sock, sx->inbuffer, sizeof(sx->inbuffer)) > 0 && rc > 0;) rc--; /* drain socket */ + sx->send_quit = FALSE; } (void)close(sx->inblock.sock); +sx->inblock.sock = sx->outblock.sock = -1; #ifndef DISABLE_EVENT (void) event_raise(sx->tblock->event_action, US"tcp:close", NULL); @@ -2468,18 +2432,20 @@ uschar *p; smtp_context sx; suppress_tls = suppress_tls; /* stop compiler warning when no TLS support */ +*message_defer = FALSE; sx.addrlist = addrlist; sx.host = host; sx.host_af = host_af, sx.port = port; sx.interface = interface; +sx.helo_data = NULL; sx.tblock = tblock; /* Get the channel set up ready for a message (MAIL FROM being the next SMTP command to send */ -if ((rc = smtp_setup_conn(&sx, message_defer, suppress_tls, FALSE)) != OK) +if ((rc = smtp_setup_conn(&sx, suppress_tls, FALSE)) != OK) return rc; /* If there is a filter command specified for this transport, we can now @@ -3386,7 +3352,7 @@ void smtp_transport_closedown(transport_instance *tblock) { smtp_transport_options_block *ob = - (smtp_transport_options_block *)(tblock->options_block); + (smtp_transport_options_block *)tblock->options_block; smtp_inblock inblock; smtp_outblock outblock; uschar buffer[256]; diff --git a/src/src/transports/smtp.h b/src/src/transports/smtp.h index c8df38ab4..e12c0ab94 100644 --- a/src/src/transports/smtp.h +++ b/src/src/transports/smtp.h @@ -5,6 +5,13 @@ /* Copyright (c) University of Cambridge 1995 - 2015 */ /* See the file NOTICE for conditions of use and distribution. */ +#define DELIVER_BUFFER_SIZE 4096 + +#define PENDING 256 +#define PENDING_DEFER (PENDING + DEFER) +#define PENDING_OK (PENDING + OK) + + /* Private structure for the private options and other private data. */ typedef struct { @@ -82,6 +89,58 @@ typedef struct { #endif } smtp_transport_options_block; +/* smtp connect context */ +typedef struct { + address_item * addrlist; + host_item * host; + int host_af; + int port; + uschar * interface; + + BOOL lmtp:1; + BOOL smtps:1; + BOOL ok:1; + BOOL send_rset:1; + BOOL send_quit:1; + BOOL setting_up:1; + BOOL esmtp:1; + BOOL esmtp_sent:1; + BOOL pending_MAIL:1; +#ifndef DISABLE_PRDR + BOOL prdr_active:1; +#endif +#ifdef SUPPORT_I18N + BOOL utf8_needed:1; +#endif + BOOL dsn_all_lasthop:1; +#if defined(SUPPORT_TLS) && defined(EXPERIMENTAL_DANE) + BOOL dane:1; + BOOL dane_required:1; +#endif + + int max_rcpt; + + uschar peer_offered; + uschar * igquotstr; + uschar * helo_data; +#ifdef EXPERIMENTAL_DSN_INFO + uschar * smtp_greeting; + uschar * helo_response; +#endif + + smtp_inblock inblock; + smtp_outblock outblock; + uschar buffer[DELIVER_BUFFER_SIZE]; + uschar inbuffer[4096]; + uschar outbuffer[4096]; + + transport_instance * tblock; + smtp_transport_options_block * ob; +} smtp_context; + +extern int smtp_setup_conn(smtp_context *, BOOL, BOOL); + + /* Data for reading the private options. */ extern optionlist smtp_transport_options[]; diff --git a/src/src/verify.c b/src/src/verify.c index 0e31ee8b5..4af863c0b 100644 --- a/src/src/verify.c +++ b/src/src/verify.c @@ -171,7 +171,6 @@ dbdata_callout_cache new_domain_record; dbdata_callout_cache_address new_address_record; host_item *host; time_t callout_start_time; -uschar peer_offered = 0; new_domain_record.result = ccache_unknown; new_domain_record.postmaster_result = ccache_unknown; @@ -508,7 +507,7 @@ can do it there for the non-rcpt-verify case. For this we keep an addresscount. } } } - break; + break; /* host_list */ } if (!done) cancel_cutthrough_connection("incompatible connection"); @@ -519,26 +518,11 @@ can do it there for the non-rcpt-verify case. For this we keep an addresscount. for (host = host_list; host && !done; host = host->next) { - smtp_inblock inblock; - smtp_outblock outblock; int host_af; int port = 25; - BOOL send_quit = TRUE; - uschar *active_hostname = smtp_active_hostname; - BOOL lmtp; - BOOL smtps; - BOOL esmtp; - BOOL suppress_tls = FALSE; uschar *interface = NULL; /* Outgoing interface to use; NULL => any */ -#if defined(SUPPORT_TLS) && defined(EXPERIMENTAL_DANE) - BOOL dane = FALSE; - BOOL dane_required; - dns_answer tlsa_dnsa; -#endif - uschar inbuffer[4096]; - uschar outbuffer[1024]; + smtp_context sx; uschar responsebuffer[4096]; - uschar * size_str; clearflag(addr, af_verify_pmfail); /* postmaster callout flag */ clearflag(addr, af_verify_nsfail); /* null sender callout flag */ @@ -583,403 +567,92 @@ can do it there for the non-rcpt-verify case. For this we keep an addresscount. log_write(0, LOG_MAIN|LOG_PANIC, "<%s>: %s", addr->address, addr->message); - /* Set HELO string according to the protocol */ - lmtp= Ustrcmp(tf->protocol, "lmtp") == 0; - smtps= Ustrcmp(tf->protocol, "smtps") == 0; - - - HDEBUG(D_verify) debug_printf("interface=%s port=%d\n", interface, port); - - /* Set up the buffer for reading SMTP response packets. */ - - inblock.buffer = inbuffer; - inblock.buffersize = sizeof(inbuffer); - inblock.ptr = inbuffer; - inblock.ptrend = inbuffer; - - /* Set up the buffer for holding SMTP commands while pipelining */ - - outblock.buffer = outbuffer; - outblock.buffersize = sizeof(outbuffer); - outblock.ptr = outbuffer; - outblock.cmd_count = 0; - outblock.authenticating = FALSE; - - /* Connect to the host; on failure, just loop for the next one, but we - set the error for the last one. Use the callout_connect timeout. */ - - tls_retry_connection: - - /* Reset the parameters of a TLS session */ - tls_out.cipher = tls_out.peerdn = tls_out.peercert = NULL; - - inblock.sock = outblock.sock = - smtp_connect(host, host_af, port, interface, callout_connect, - addr->transport); - if (inblock.sock < 0) + sx.addrlist = addr; + sx.host = host; + sx.host_af = host_af, + sx.port = port; + sx.interface = interface; + sx.helo_data = tf->helo_data; + sx.tblock = addr->transport; + +tls_retry_connection: + /* Set the address state so that errors are recorded in it */ + + addr->transport_return = PENDING_DEFER; + ob->connect_timeout = callout_connect; + ob->command_timeout = callout; + + /* Get the channel set up ready for a message (MAIL FROM being the next + SMTP command to send. If we tried TLS but it failed, try again without + if permitted */ + + if ( (yield = smtp_setup_conn(&sx, FALSE, TRUE)) == DEFER + && addr->basic_errno == ERRNO_TLSFAILURE + && ob->tls_tempfail_tryclear + && verify_check_given_host(&ob->hosts_require_tls, host) != OK + ) { - HDEBUG(D_verify) debug_printf("connect: %s\n", strerror(errno)); - addr->message = string_sprintf("could not connect to %s [%s]: %s", - host->name, host->address, strerror(errno)); + log_write(0, LOG_MAIN, "TLS session failure:" + " callout unencrypted to %s [%s] (not in hosts_require_tls)", + host->name, host->address); + yield = smtp_setup_conn(&sx, TRUE, TRUE); + } + if (yield != OK) + { + if (addr->message) addr->message = string_sprintf("%s [%s] %s", + host->name, host->address, addr->message); + errno = addr->basic_errno; transport_name = NULL; deliver_host = deliver_host_address = NULL; deliver_domain = save_deliver_domain; - continue; - } - -#if defined(SUPPORT_TLS) && defined(EXPERIMENTAL_DANE) - { - int rc; - - tls_out.dane_verified = FALSE; - tls_out.tlsa_usage = 0; - dane_required = - verify_check_given_host(&ob->hosts_require_dane, host) == OK; - - if (host->dnssec == DS_YES) - { - if( dane_required - || verify_check_given_host(&ob->hosts_try_dane, host) == OK - ) - { - if ((rc = tlsa_lookup(host, &tlsa_dnsa, dane_required)) != OK) - return rc; - dane = TRUE; - } - } - else if (dane_required) - { - log_write(0, LOG_MAIN, "DANE error: %s lookup not DNSSEC", host->name); - return FAIL; - } - - if (dane) - ob->tls_tempfail_tryclear = FALSE; - } -#endif /*DANE*/ - - /* Expand the helo_data string to find the host name to use. */ - - if (tf->helo_data) - { - uschar * s = expand_string(tf->helo_data); - if (!s) - log_write(0, LOG_MAIN|LOG_PANIC, "<%s>: failed to expand transport's " - "helo_data value for callout: %s", addr->address, - expand_string_message); - else active_hostname = s; - } - - /* Wait for initial response, and send HELO. The smtp_write_command() - function leaves its command in big_buffer. This is used in error responses. - Initialize it in case the connection is rejected. */ - - Ustrcpy(big_buffer, "initial connection"); - - /* Unless ssl-on-connect, wait for the initial greeting */ - smtps_redo_greeting: - -#ifdef SUPPORT_TLS - if (!smtps || (smtps && tls_out.active >= 0)) -#endif - { -#ifdef TCP_QUICKACK - (void) setsockopt(inblock.sock, IPPROTO_TCP, TCP_QUICKACK, US &off, sizeof(off)); -#endif - if (!(done= smtp_read_response(&inblock, responsebuffer, sizeof(responsebuffer), '2', callout))) - goto RESPONSE_FAILED; + /* Failure to accept HELO is cached; this blocks the whole domain for all + senders. I/O errors and defer responses are not cached. */ -#ifndef DISABLE_EVENT - lookup_dnssec_authenticated = host->dnssec==DS_YES ? US"yes" - : host->dnssec==DS_NO ? US"no" : NULL; - if (event_raise(addr->transport->event_action, - US"smtp:connect", responsebuffer)) + if (yield == FAIL && (errno == 0 || errno == ERRNO_SMTPCLOSED)) { - lookup_dnssec_authenticated = NULL; - /* Logging? Debug? */ - goto RESPONSE_FAILED; + setflag(addr, af_verify_nsfail); + new_domain_record.result = ccache_reject; + done = TRUE; } - lookup_dnssec_authenticated = NULL; -#endif - } - - /* Not worth checking greeting line for ESMTP support */ - if (!(esmtp = verify_check_given_host(&ob->hosts_avoid_esmtp, host) != OK)) - DEBUG(D_transport) - debug_printf("not sending EHLO (host matches hosts_avoid_esmtp)\n"); - - tls_redo_helo: - -#ifdef SUPPORT_TLS - if (smtps && tls_out.active < 0) /* ssl-on-connect, first pass */ - { - peer_offered &= ~PEER_OFFERED_TLS; - ob->tls_tempfail_tryclear = FALSE; - } - else /* all other cases */ -#endif - - { esmtp_retry: - - if (!(done= smtp_write_command(&outblock, FALSE, "%s %s\r\n", - !esmtp? "HELO" : lmtp? "LHLO" : "EHLO", active_hostname) >= 0)) - goto SEND_FAILED; - if (!smtp_read_response(&inblock, responsebuffer, sizeof(responsebuffer), '2', callout)) - { - if (errno != 0 || responsebuffer[0] == 0 || lmtp || !esmtp || tls_out.active >= 0) - { - done= FALSE; - goto RESPONSE_FAILED; - } -#ifdef SUPPORT_TLS - peer_offered &= ~PEER_OFFERED_TLS; -#endif - esmtp = FALSE; - goto esmtp_retry; /* fallback to HELO */ - } - - /* Set tls_offered if the response to EHLO specifies support for STARTTLS. */ - - peer_offered = esmtp - ? ehlo_response(responsebuffer, sizeof(responsebuffer), - (!suppress_tls && tls_out.active < 0 ? PEER_OFFERED_TLS : 0) - | 0 /* no IGNQ */ - | 0 /* no PRDR */ -#ifdef SUPPORT_I18N - | (addr->prop.utf8_msg && !addr->prop.utf8_downcvt - ? PEER_OFFERED_UTF8 : 0) -#endif - | 0 /* no DSN */ - | 0 /* no PIPE */ - - /* only care about SIZE if we have size from inbound */ - | (message_size > 0 && ob->size_addition >= 0 - ? PEER_OFFERED_SIZE : 0) - ) - : 0; - } - - size_str = options & vopt_is_recipient && peer_offered & PEER_OFFERED_SIZE - ? string_sprintf(" SIZE=%d", message_size + ob->size_addition) : US""; - -#ifdef SUPPORT_TLS - smtp_peer_options |= peer_offered & PEER_OFFERED_TLS; -#endif - - /* If TLS is available on this connection attempt to - start up a TLS session, unless the host is in hosts_avoid_tls. If successful, - send another EHLO - the server may give a different answer in secure mode. We - use a separate buffer for reading the response to STARTTLS so that if it is - negative, the original EHLO data is available for subsequent analysis, should - the client not be required to use TLS. If the response is bad, copy the buffer - for error analysis. */ - -#ifdef SUPPORT_TLS - if ( peer_offered & PEER_OFFERED_TLS - && verify_check_given_host(&ob->hosts_avoid_tls, host) != OK - && verify_check_given_host(&ob->hosts_verify_avoid_tls, host) != OK - ) - { - uschar buffer2[4096]; - if ( !smtps - && !(done= smtp_write_command(&outblock, FALSE, "STARTTLS\r\n") >= 0)) - goto SEND_FAILED; - - /* If there is an I/O error, transmission of this message is deferred. If - there is a temporary rejection of STARRTLS and tls_tempfail_tryclear is - false, we also defer. However, if there is a temporary rejection of STARTTLS - and tls_tempfail_tryclear is true, or if there is an outright rejection of - STARTTLS, we carry on. This means we will try to send the message in clear, - unless the host is in hosts_require_tls (tested below). */ - - if (!smtps && !smtp_read_response(&inblock, buffer2, sizeof(buffer2), '2', - ob->command_timeout)) - { - if ( errno != 0 - || buffer2[0] == 0 - || buffer2[0] == '4' && !ob->tls_tempfail_tryclear - ) - { - Ustrncpy(responsebuffer, buffer2, sizeof(responsebuffer)); - done= FALSE; - goto RESPONSE_FAILED; - } - } - - /* STARTTLS accepted or ssl-on-connect: try to negotiate a TLS session. */ else - { - int oldtimeout = ob->command_timeout; - int rc; - - ob->command_timeout = callout; - rc = tls_client_start(inblock.sock, host, addr, addr->transport -# ifdef EXPERIMENTAL_DANE - , dane ? &tlsa_dnsa : NULL -# endif - ); - ob->command_timeout = oldtimeout; - - /* TLS negotiation failed; give an error. Try in clear on a new - connection, if the options permit it for this host. */ - if (rc != OK) - { - HDEBUG(D_transport|D_acl|D_v) debug_printf(" SMTP(close)>>\n"); - (void)close(inblock.sock); -# ifndef DISABLE_EVENT - (void) event_raise(addr->transport->event_action, - US"tcp:close", NULL); -# endif - if ( ob->tls_tempfail_tryclear - && !smtps - && verify_check_given_host(&ob->hosts_require_tls, host) != OK - ) - { - log_write(0, LOG_MAIN, "TLS session failure:" - " callout unencrypted to %s [%s] (not in hosts_require_tls)", - host->name, host->address); - suppress_tls = TRUE; - goto tls_retry_connection; - } - - /*save_errno = ERRNO_TLSFAILURE;*/ - /*message = US"failure while setting up TLS session";*/ - send_quit = FALSE; - done= FALSE; - goto TLS_FAILED; - } - - /* TLS session is set up. Copy info for logging. */ - addr->cipher = tls_out.cipher; - addr->peerdn = tls_out.peerdn; - - /* For SMTPS we need to wait for the initial OK response, then do HELO. */ - if (smtps) - goto smtps_redo_greeting; - - /* For STARTTLS we need to redo EHLO */ - goto tls_redo_helo; - } - } - - /* If the host is required to use a secure channel, ensure that we have one. */ - if (tls_out.active < 0) - if ( -# ifdef EXPERIMENTAL_DANE - dane || -# endif - verify_check_given_host(&ob->hosts_require_tls, host) == OK - ) - { - /*save_errno = ERRNO_TLSREQUIRED;*/ - log_write(0, LOG_MAIN, - "H=%s [%s]: a TLS session is required for this host, but %s", - host->name, host->address, - peer_offered & PEER_OFFERED_TLS - ? "an attempt to start TLS failed" - : "the server did not offer TLS support"); - done= FALSE; - goto TLS_FAILED; - } - -#endif /*SUPPORT_TLS*/ - - done = TRUE; /* so far so good; have response to HELO */ - - /* For now, transport_filter by cutthrough-delivery is not supported */ - /* Need proper integration with the proper transport mechanism. */ - if (cutthrough.delivery) - { -#ifndef DISABLE_DKIM - uschar * s; -#endif - if (addr->transport->filter_command) - { - cutthrough.delivery = FALSE; - HDEBUG(D_acl|D_v) debug_printf("Cutthrough cancelled by presence of transport filter\n"); - } -#ifndef DISABLE_DKIM - else if ((s = ob->dkim.dkim_domain) && (s = expand_string(s)) && *s) - { - cutthrough.delivery = FALSE; - HDEBUG(D_acl|D_v) debug_printf("Cutthrough cancelled by presence of DKIM signing\n"); - } -#endif - } - - SEND_FAILED: - RESPONSE_FAILED: - TLS_FAILED: - ; - /* Clear down of the TLS, SMTP and TCP layers on error is handled below. */ - - /* Failure to accept HELO is cached; this blocks the whole domain for all - senders. I/O errors and defer responses are not cached. */ - - if (!done) - { - *failure_ptr = US"mail"; /* At or before MAIL */ - if (errno == 0 && responsebuffer[0] == '5') - { - setflag(addr, af_verify_nsfail); - new_domain_record.result = ccache_reject; - } - } - -#ifdef SUPPORT_I18N - else if ( addr->prop.utf8_msg - && !addr->prop.utf8_downcvt - && !(peer_offered & PEER_OFFERED_UTF8) - ) - { - HDEBUG(D_acl|D_v) debug_printf("utf8 required but not offered\n"); - errno = ERRNO_UTF8_FWD; - setflag(addr, af_verify_nsfail); - done = FALSE; - } - else if ( addr->prop.utf8_msg - && (addr->prop.utf8_downcvt || !(peer_offered & PEER_OFFERED_UTF8)) - && !(setflag(addr, af_utf8_downcvt), - from_address = string_address_utf8_to_alabel(from_address, - &addr->message) - ) ) - { - errno = ERRNO_EXPANDFAIL; - setflag(addr, af_verify_nsfail); - done = FALSE; + done = FALSE; + goto no_conn; } -#endif - - /* If we haven't authenticated, but are required to, give up. */ - /* Try to AUTH */ - else done = smtp_auth(responsebuffer, sizeof(responsebuffer), - addr, host, ob, esmtp, &inblock, &outblock) == OK && + /* If we needed to authenticate, smtp_setup_conn() did that. Copy + the AUTH info for logging */ - /* Copy AUTH info for logging */ - ( (addr->authenticator = client_authenticator), - (addr->auth_id = client_authenticated_id), + addr->authenticator = client_authenticator; + addr->auth_id = client_authenticated_id; /* Build a mail-AUTH string (re-using responsebuffer for convenience */ - !smtp_mail_auth_str(responsebuffer, sizeof(responsebuffer), addr, ob) - ) && - ( (addr->auth_sndr = client_authenticated_sender), + done = + !smtp_mail_auth_str(responsebuffer, sizeof(responsebuffer), addr, ob) + && ( + (addr->auth_sndr = client_authenticated_sender), /* Send the MAIL command */ - (smtp_write_command(&outblock, FALSE, + + (smtp_write_command(&sx.outblock, FALSE, #ifdef SUPPORT_I18N - addr->prop.utf8_msg && !addr->prop.utf8_downcvt - ? "MAIL FROM:<%s>%s%s SMTPUTF8\r\n" - : + addr->prop.utf8_msg && !addr->prop.utf8_downcvt + ? "MAIL FROM:<%s>%s%s SMTPUTF8\r\n" + : #endif - "MAIL FROM:<%s>%s%s\r\n", - from_address, responsebuffer, size_str) >= 0) - ) && + "MAIL FROM:<%s>%s%s\r\n", + from_address, + responsebuffer, + options & vopt_is_recipient && sx.peer_offered & PEER_OFFERED_SIZE + ? string_sprintf(" SIZE=%d", message_size + ob->size_addition) + : US"" + + ) >= 0) + ) - smtp_read_response(&inblock, responsebuffer, sizeof(responsebuffer), - '2', callout); + && smtp_read_response(&sx.inblock, responsebuffer, sizeof(responsebuffer), + '2', callout); deliver_host = deliver_host_address = NULL; deliver_domain = save_deliver_domain; @@ -1040,10 +713,10 @@ can do it there for the non-rcpt-verify case. For this we keep an addresscount. { uschar randombuffer[1024]; BOOL random_ok = - smtp_write_command(&outblock, FALSE, + smtp_write_command(&sx.outblock, FALSE, "RCPT TO:<%.1000s@%.1000s>\r\n", random_local_part, rcpt_domain) >= 0 && - smtp_read_response(&inblock, randombuffer, + smtp_read_response(&sx.inblock, randombuffer, sizeof(randombuffer), '2', callout); /* Remember when we last did a random test */ @@ -1072,11 +745,11 @@ can do it there for the non-rcpt-verify case. For this we keep an addresscount. new_domain_record.random_result = ccache_reject; done = - smtp_write_command(&outblock, FALSE, "RSET\r\n") >= 0 && - smtp_read_response(&inblock, responsebuffer, sizeof(responsebuffer), + smtp_write_command(&sx.outblock, FALSE, "RSET\r\n") >= 0 && + smtp_read_response(&sx.inblock, responsebuffer, sizeof(responsebuffer), '2', callout) && - smtp_write_command(&outblock, FALSE, + smtp_write_command(&sx.outblock, FALSE, #ifdef SUPPORT_I18N addr->prop.utf8_msg && !addr->prop.utf8_downcvt ? "MAIL FROM:<%s> SMTPUTF8\r\n" @@ -1084,7 +757,7 @@ can do it there for the non-rcpt-verify case. For this we keep an addresscount. #endif "MAIL FROM:<%s>\r\n", from_address) >= 0 && - smtp_read_response(&inblock, responsebuffer, sizeof(responsebuffer), + smtp_read_response(&sx.inblock, responsebuffer, sizeof(responsebuffer), '2', callout); if (!done) @@ -1096,7 +769,7 @@ can do it there for the non-rcpt-verify case. For this we keep an addresscount. tls_close(FALSE, TRUE); #endif HDEBUG(D_transport|D_acl|D_v) debug_printf(" SMTP(close)>>\n"); - (void)close(inblock.sock); + (void)close(sx.inblock.sock); #ifndef DISABLE_EVENT (void) event_raise(addr->transport->event_action, US"tcp:close", NULL); @@ -1132,9 +805,9 @@ can do it there for the non-rcpt-verify case. For this we keep an addresscount. #endif done = - smtp_write_command(&outblock, FALSE, "RCPT TO:<%.1000s>\r\n", + smtp_write_command(&sx.outblock, FALSE, "RCPT TO:<%.1000s>\r\n", rcpt) >= 0 && - smtp_read_response(&inblock, responsebuffer, sizeof(responsebuffer), + smtp_read_response(&sx.inblock, responsebuffer, sizeof(responsebuffer), '2', callout); if (done) @@ -1148,7 +821,7 @@ can do it there for the non-rcpt-verify case. For this we keep an addresscount. /* Do postmaster check if requested; if a full check is required, we check for RCPT TO:<postmaster> (no domain) in accordance with RFC 821. */ - if (done && pm_mailfrom != NULL) + if (done && pm_mailfrom) { /* Could possibly shift before main verify, just above, and be ok for cutthrough. But no way to handle a subsequent rcpt, so just @@ -1157,21 +830,21 @@ can do it there for the non-rcpt-verify case. For this we keep an addresscount. HDEBUG(D_acl|D_v) debug_printf("Cutthrough cancelled by presence of postmaster verify\n"); done = - smtp_write_command(&outblock, FALSE, "RSET\r\n") >= 0 && - smtp_read_response(&inblock, responsebuffer, + smtp_write_command(&sx.outblock, FALSE, "RSET\r\n") >= 0 && + smtp_read_response(&sx.inblock, responsebuffer, sizeof(responsebuffer), '2', callout) && - smtp_write_command(&outblock, FALSE, + smtp_write_command(&sx.outblock, FALSE, "MAIL FROM:<%s>\r\n", pm_mailfrom) >= 0 && - smtp_read_response(&inblock, responsebuffer, + smtp_read_response(&sx.inblock, responsebuffer, sizeof(responsebuffer), '2', callout) && /* First try using the current domain */ (( - smtp_write_command(&outblock, FALSE, + smtp_write_command(&sx.outblock, FALSE, "RCPT TO:<postmaster@%.1000s>\r\n", rcpt_domain) >= 0 && - smtp_read_response(&inblock, responsebuffer, + smtp_read_response(&sx.inblock, responsebuffer, sizeof(responsebuffer), '2', callout) ) @@ -1182,9 +855,9 @@ can do it there for the non-rcpt-verify case. For this we keep an addresscount. ( (options & vopt_callout_fullpm) != 0 && - smtp_write_command(&outblock, FALSE, + smtp_write_command(&sx.outblock, FALSE, "RCPT TO:<postmaster>\r\n") >= 0 && - smtp_read_response(&inblock, responsebuffer, + smtp_read_response(&sx.inblock, responsebuffer, sizeof(responsebuffer), '2', callout) )); @@ -1214,50 +887,55 @@ can do it there for the non-rcpt-verify case. For this we keep an addresscount. don't give the IP address because this may be an internal host whose identity is not to be widely broadcast. */ - if (!done) +no_conn: + if (!done) switch(errno) { - if (errno == ETIMEDOUT) - { - HDEBUG(D_verify) debug_printf("SMTP timeout\n"); - send_quit = FALSE; - } + case ETIMEDOUT: + HDEBUG(D_verify) debug_printf("SMTP timeout\n"); + sx.send_quit = FALSE; + break; + #ifdef SUPPORT_I18N - else if (errno == ERRNO_UTF8_FWD) + case ERRNO_UTF8_FWD: { extern int acl_where; /* src/acl.c */ errno = 0; addr->message = string_sprintf( - "response to \"%s\" from %s [%s] did not include SMTPUTF8", - big_buffer, host->name, host->address); - addr->user_message = acl_where == ACL_WHERE_RCPT - ? US"533 mailbox name not allowed" + "response to \"EHLO\" from %s [%s] did not include SMTPUTF8", + host->name, host->address); + addr->user_message = acl_where == ACL_WHERE_RCPT + ? US"533 no support for internationalised mailbox name" : US"550 mailbox unavailable"; yield = FAIL; done = TRUE; } + break; #endif - else if (errno == 0) - { - if (*responsebuffer == 0) Ustrcpy(responsebuffer, US"connection dropped"); + case ECONNREFUSED: + sx.send_quit = FALSE; + break; + + case 0: + if (*responsebuffer == 0) Ustrcpy(responsebuffer, US"connection dropped"); - addr->message = - string_sprintf("response to \"%s\" from %s [%s] was: %s", - big_buffer, host->name, host->address, - string_printing(responsebuffer)); + addr->message = + string_sprintf("response to \"%s\" from %s [%s] was: %s", + big_buffer, host->name, host->address, + string_printing(responsebuffer)); - addr->user_message = options & vopt_is_recipient + addr->user_message = options & vopt_is_recipient ? string_sprintf("Callout verification failed:\n%s", responsebuffer) - : string_sprintf("Called: %s\nSent: %s\nResponse: %s", - host->address, big_buffer, responsebuffer); + : string_sprintf("Called: %s\nSent: %s\nResponse: %s", + host->address, big_buffer, responsebuffer); - /* Hard rejection ends the process */ + /* Hard rejection ends the process */ - if (responsebuffer[0] == '5') /* Address rejected */ - { - yield = FAIL; - done = TRUE; - } - } + if (responsebuffer[0] == '5') /* Address rejected */ + { + yield = FAIL; + done = TRUE; + } + break; } /* End the SMTP conversation and close the connection. */ @@ -1274,12 +952,12 @@ can do it there for the non-rcpt-verify case. For this we keep an addresscount. && !random_local_part && !pm_mailfrom && cutthrough.fd < 0 - && !lmtp + && !sx.lmtp ) { HDEBUG(D_acl|D_v) debug_printf("holding verify callout open for cutthrough delivery\n"); - cutthrough.fd = outblock.sock; /* We assume no buffer in use in the outblock */ + cutthrough.fd = sx.outblock.sock; /* We assume no buffer in use in the outblock */ cutthrough.nrcpt = 1; cutthrough.interface = interface; cutthrough.host = *host; @@ -1300,23 +978,27 @@ can do it there for the non-rcpt-verify case. For this we keep an addresscount. /* Ensure no cutthrough on multiple address verifies */ if (options & vopt_callout_recipsender) cancel_cutthrough_connection("not usable for cutthrough"); - if (send_quit) + if (sx.send_quit) { - (void) smtp_write_command(&outblock, FALSE, "QUIT\r\n"); + (void) smtp_write_command(&sx.outblock, FALSE, "QUIT\r\n"); /* Wait a short time for response, and discard it */ - smtp_read_response(&inblock, responsebuffer, sizeof(responsebuffer), + smtp_read_response(&sx.inblock, responsebuffer, sizeof(responsebuffer), '2', 1); } + if (sx.inblock.sock >= 0) + { #ifdef SUPPORT_TLS - tls_close(FALSE, TRUE); + tls_close(FALSE, TRUE); #endif - HDEBUG(D_transport|D_acl|D_v) debug_printf(" SMTP(close)>>\n"); - (void)close(inblock.sock); + HDEBUG(D_transport|D_acl|D_v) debug_printf(" SMTP(close)>>\n"); + (void)close(sx.inblock.sock); + sx.inblock.sock = sx.outblock.sock = -1; #ifndef DISABLE_EVENT - (void) event_raise(addr->transport->event_action, US"tcp:close", NULL); + (void) event_raise(addr->transport->event_action, US"tcp:close", NULL); #endif + } } } /* Loop through all hosts, while !done */ @@ -1388,8 +1070,8 @@ else /* !done */ options & vopt_is_recipient ? "recipient" : "sender"); yield = DEFER; - if (host_list->next || !addr->message) - addr->message = dullmsg; + addr->message = host_list->next || !addr->message + ? dullmsg : string_sprintf("%s: %s", dullmsg, addr->message); addr->user_message = smtp_return_error_details ? string_sprintf("%s for <%s>.\n" @@ -1412,6 +1094,7 @@ else /* !done */ END_CALLOUT: if (dbm_file) dbfn_close(dbm_file); +tls_modify_variables(&tls_in); return yield; } diff --git a/test/log/0227 b/test/log/0227 index ca551b3c7..e2a0ce295 100644 --- a/test/log/0227 +++ b/test/log/0227 @@ -1,6 +1,6 @@ 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <bad@localhost>: response to "RCPT TO:<bad@localhost>" from 127.0.0.1 [127.0.0.1] was: 550 Unknown user 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: Sender verify failed -1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <uncheckable@localhost1>: response to "RCPT TO:<uncheckable@localhost1>" from 127.0.0.1 [127.0.0.1] was: 450 Temporary error +1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <uncheckable@localhost1>: Could not complete sender verify callout: response to "RCPT TO:<uncheckable@localhost1>" from 127.0.0.1 [127.0.0.1] was: 450 Temporary error 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<uncheckable@localhost1> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <uncheckable2@localhost1>: response to "MAIL FROM:<>" from 127.0.0.1 [127.0.0.1] was: 550 Error for <> 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<uncheckable2@localhost1> rejected RCPT <z@test.ex>: Sender verify failed @@ -15,7 +15,7 @@ 1999-03-02 09:44:33 H=[V4NET.0.0.5] U=root sender verify fail for <ok@localhost1>: response to "RCPT TO:<postmaster@localhost1>" from 127.0.0.1 [127.0.0.1] was: 550 Don't like postmaster 1999-03-02 09:44:33 H=[V4NET.0.0.5] U=root F=<ok@localhost1> rejected RCPT <z@remote.domain>: Sender verify failed 1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.lmtp>: response to "RCPT TO:<z@remote.lmtp>" from 127.0.0.1 [127.0.0.1] was: 550 Recipient not liked -1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <bad@localhost1>: response to "initial connection" from 127.0.0.1 [127.0.0.1] was: connection dropped +1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <bad@localhost1>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] Remote host closed connection in response to initial connection 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost1> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout -1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <bad@localhost1>: could not connect to 127.0.0.1 [127.0.0.1]: Connection refused +1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <bad@localhost1>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] could not connect: Connection refused 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost1> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout diff --git a/test/log/0365 b/test/log/0365 index 569e49dfd..1a8164f63 100644 --- a/test/log/0365 +++ b/test/log/0365 @@ -1,18 +1,18 @@ 1999-03-02 09:44:33 10HmaX-0005vi-00 U=CALLER F=<> rejected after DATA: '>' missing at end of address: failing address in "From:" header is: <bad@syntax 1999-03-02 09:44:33 10HmaY-0005vi-00 U=CALLER F=<> rejected after DATA: there is no valid sender in any header line -1999-03-02 09:44:33 U=CALLER sender verify defer for <callout@x>: could not connect to V4NET.0.0.0 [V4NET.0.0.0]: Network Error +1999-03-02 09:44:33 U=CALLER sender verify defer for <callout@x>: Could not complete sender verify callout: V4NET.0.0.0 [V4NET.0.0.0] could not connect: Network Error 1999-03-02 09:44:33 U=CALLER F=<callout@x> temporarily rejected RCPT <x@y>: Could not complete sender verify callout 1999-03-02 09:44:33 10HmaZ-0005vi-00 U=CALLER F=<nosyntax@x> rejected after DATA 1999-03-02 09:44:33 10HmbA-0005vi-00 U=CALLER F=<> rejected after DATA: there is no valid sender in any header line -1999-03-02 09:44:33 U=CALLER F=<recipcallout@y> temporarily rejected RCPT <callout@y>: could not connect to V4NET.0.0.0 [V4NET.0.0.0]: Network Error +1999-03-02 09:44:33 U=CALLER F=<recipcallout@y> temporarily rejected RCPT <callout@y>: Could not complete recipient verify callout: V4NET.0.0.0 [V4NET.0.0.0] could not connect: Network Error 1999-03-02 09:44:33 U=CALLER F=<> rejected RCPT <cantverify.fail@y>: failure message 1999-03-02 09:44:33 U=CALLER F=<> temporarily rejected RCPT <cantverify.defer@y>: defer message 1999-03-02 09:44:33 10HmbB-0005vi-00 U=CALLER F=<> rejected after DATA: '>' missing at end of address: failing address in "From:" header is: <bad@syntax 1999-03-02 09:44:33 10HmbC-0005vi-00 U=CALLER F=<> rejected after DATA: there is no valid sender in any header line -1999-03-02 09:44:33 U=CALLER sender verify defer for <callout@x>: could not connect to V4NET.0.0.0 [V4NET.0.0.0]: Network Error +1999-03-02 09:44:33 U=CALLER sender verify defer for <callout@x>: Could not complete sender verify callout: V4NET.0.0.0 [V4NET.0.0.0] could not connect: Network Error 1999-03-02 09:44:33 U=CALLER F=<callout@x> temporarily rejected RCPT <x@y>: Could not complete sender verify callout 1999-03-02 09:44:33 10HmbD-0005vi-00 U=CALLER F=<nosyntax@x> rejected after DATA 1999-03-02 09:44:33 10HmbE-0005vi-00 U=CALLER F=<> rejected after DATA: there is no valid sender in any header line -1999-03-02 09:44:33 U=CALLER F=<recipcallout@y> temporarily rejected RCPT <callout@y>: could not connect to V4NET.0.0.0 [V4NET.0.0.0]: Network Error +1999-03-02 09:44:33 U=CALLER F=<recipcallout@y> temporarily rejected RCPT <callout@y>: Could not complete recipient verify callout: V4NET.0.0.0 [V4NET.0.0.0] could not connect: Network Error 1999-03-02 09:44:33 U=CALLER F=<> rejected RCPT <cantverify.fail@y>: failure message 1999-03-02 09:44:33 U=CALLER F=<> temporarily rejected RCPT <cantverify.defer@y>: defer message diff --git a/test/log/0376 b/test/log/0376 index c84cd2300..3a380eb8c 100644 --- a/test/log/0376 +++ b/test/log/0376 @@ -1,4 +1,4 @@ -1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <ok@localhost>: could not connect to 127.0.0.1 [127.0.0.1]: Connection refused +1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <ok@localhost>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] could not connect: Connection refused 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<ok@localhost> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <bad@localhost>: response to "RCPT TO:<bad@localhost>" from 127.0.0.1 [127.0.0.1] was: 550 REJECTED 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: (recipient): Sender verify failed diff --git a/test/log/0413 b/test/log/0413 index 1e587828d..d4eed0011 100644 --- a/test/log/0413 +++ b/test/log/0413 @@ -1,6 +1,6 @@ -1999-03-02 09:44:33 U=CALLER sender verify defer for <r1@domain1>: response to "RCPT TO:<r1@domain1>" from 127.0.0.1 [127.0.0.1] was: 450 Temporary error +1999-03-02 09:44:33 U=CALLER sender verify defer for <r1@domain1>: Could not complete sender verify callout: response to "RCPT TO:<r1@domain1>" from 127.0.0.1 [127.0.0.1] was: 450 Temporary error 1999-03-02 09:44:33 U=CALLER temporarily rejected MAIL <r1@domain1>: Could not complete sender verify callout -1999-03-02 09:44:33 U=CALLER sender verify defer for <r2@domain2>: response to "RCPT TO:<r2@domain2>" from ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4] was: 450 Temporary error +1999-03-02 09:44:33 U=CALLER sender verify defer for <r2@domain2>: Could not complete sender verify callout: response to "RCPT TO:<r2@domain2>" from ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4] was: 450 Temporary error 1999-03-02 09:44:33 U=CALLER temporarily rejected MAIL <r2@domain2>: Could not complete sender verify callout -1999-03-02 09:44:33 U=CALLER sender verify defer for <r3@domain3>: response to "RCPT TO:<r3@domain3>" from 127.0.0.1 [127.0.0.1] was: 450 Temporary error +1999-03-02 09:44:33 U=CALLER sender verify defer for <r3@domain3>: Could not complete sender verify callout: response to "RCPT TO:<r3@domain3>" from 127.0.0.1 [127.0.0.1] was: 450 Temporary error 1999-03-02 09:44:33 U=CALLER temporarily rejected MAIL <r3@domain3>: Could not complete sender verify callout diff --git a/test/log/0473 b/test/log/0473 index c6e216931..8a7593ade 100644 --- a/test/log/0473 +++ b/test/log/0473 @@ -1,5 +1,5 @@ 1999-03-02 09:44:33 U=CALLER F=<s3@other.ex> rejected RCPT r3@other.ex: response to "MAIL FROM:<s3@other.ex>" from 127.0.0.1 [127.0.0.1] was: 550 NOTOK -1999-03-02 09:44:33 U=CALLER F=<s4@other.ex> temporarily rejected RCPT r4@other.ex: could not connect to 127.0.0.1 [127.0.0.1]: Connection refused +1999-03-02 09:44:33 U=CALLER F=<s4@other.ex> temporarily rejected RCPT r4@other.ex: Could not complete recipient verify callout: 127.0.0.1 [127.0.0.1] could not connect: Connection refused 1999-03-02 09:44:33 U=CALLER F=<x9@test.ex> rejected RCPT <r9@test.ex>: response to "RCPT TO:<r9@test.ex>" from 127.0.0.1 [127.0.0.1] was: 550 NO 1999-03-02 09:44:33 U=CALLER F=<x9@test.ex> rejected RCPT <r9@test.ex>: Previous (cached) callout verification failure 1999-03-02 09:44:33 U=CALLER sender verify fail for <x9@test.ex>: response to "RCPT TO:<x9@test.ex>" from 127.0.0.1 [127.0.0.1] was: 550 NO @@ -7,4 +7,4 @@ 1999-03-02 09:44:33 U=CALLER sender verify fail for <x9@test.ex> 1999-03-02 09:44:33 U=CALLER F=<x9@test.ex> rejected RCPT <r9@test.ex>: Sender verify failed 1999-03-02 09:44:33 U=CALLER F=<x11@two.test.ex> temporarily rejected RCPT r11@two.test.ex: Could not complete recipient verify callout -1999-03-02 09:44:33 U=CALLER F=<x11@two.test.ex> temporarily rejected RCPT r11@two.test.ex: Could not complete recipient verify callout +1999-03-02 09:44:33 U=CALLER F=<x11@two.test.ex> temporarily rejected RCPT r11@two.test.ex: Could not complete recipient verify callout: 127.0.0.1 [127.0.0.1] SMTP timeout after initial connection diff --git a/test/log/4204 b/test/log/4204 index 0dd1f89a6..859ff859e 100644 --- a/test/log/4204 +++ b/test/log/4204 @@ -4,8 +4,8 @@ 1999-03-02 09:44:33 10HmaZ-0005vi-00 <= 세계의모든사람들이한국어를이해한다면얼마나좋을까@russian.почемужеонинеговорятпорусски.com U=CALLER P=utf8local-esmtp S=sss for userR@test.ex 1999-03-02 09:44:33 10HmaZ-0005vi-00 => userr@test.ex <userR@test.ex> F=<세계의모든사람들이한국어를이해한다면얼마나좋을까@russian.почемужеонинеговорятпорусски.com> R=rmt T=rmt_smtp H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmbA-0005vi-00" 1999-03-02 09:44:33 10HmaZ-0005vi-00 Completed -1999-03-02 09:44:33 U=CALLER F=<CALLER@spanish.PorquénopuedensimplementehablarenEspañol.local> rejected RCPT <userS@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 -1999-03-02 09:44:33 U=CALLER F=<CALLER@vietnamese.TạisaohọkhôngthểchỉnóitiếngViệt.local> rejected RCPT <userT@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER F=<CALLER@spanish.PorquénopuedensimplementehablarenEspañol.local> rejected RCPT <userS@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER F=<CALLER@vietnamese.TạisaohọkhôngthểchỉnóitiếngViệt.local> rejected RCPT <userT@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 ******** SERVER ******** 1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port 1225 diff --git a/test/log/4206 b/test/log/4206 index cab609f55..6fe0bbf41 100644 --- a/test/log/4206 +++ b/test/log/4206 @@ -4,9 +4,9 @@ 1999-03-02 09:44:33 10HmaZ-0005vi-00 <= userW@test.ex U=CALLER P=utf8local-esmtp S=sss for user.ഇരട്ടിമധുരം@test.ex 1999-03-02 09:44:33 10HmaZ-0005vi-00 => user.ഇരട്ടിമധുരം@test.ex F=<userW@test.ex> R=rmt T=rmt_smtp H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmbA-0005vi-00" 1999-03-02 09:44:33 10HmaZ-0005vi-00 Completed -1999-03-02 09:44:33 U=CALLER sender verify fail for <userA@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER sender verify fail for <userA@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 1999-03-02 09:44:33 U=CALLER F=<userA@test.ex> rejected RCPT <user.यष्टिमधु@test.ex>: Sender verify failed -1999-03-02 09:44:33 U=CALLER sender verify fail for <userB.જેઠીમધ@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER sender verify fail for <userB.જેઠીમધ@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 1999-03-02 09:44:33 U=CALLER F=<userB.જેઠીમધ@test.ex> rejected RCPT <user.ქართული@test.ex>: Sender verify failed ******** SERVER ******** diff --git a/test/log/4214 b/test/log/4214 index 97a89fd80..9b3394bfd 100644 --- a/test/log/4214 +++ b/test/log/4214 @@ -4,8 +4,8 @@ 1999-03-02 09:44:33 10HmaZ-0005vi-00 <= 세계의모든사람들이한국어를이해한다면얼마나좋을까@russian.почемужеонинеговорятпорусски.com U=CALLER P=utf8local-esmtp S=sss for userR@test.ex 1999-03-02 09:44:33 10HmaZ-0005vi-00 => userr@test.ex <userR@test.ex> F=<세계의모든사람들이한국어를이해한다면얼마나좋을까@russian.почемужеонинеговорятпорусски.com> R=rmt T=rmt_smtp H=127.0.0.1 [127.0.0.1] X=TLS1.x:xxxxRSA_AES_256_CBC_SHAnnn:256 CV=no C="250 OK id=10HmbA-0005vi-00" 1999-03-02 09:44:33 10HmaZ-0005vi-00 Completed -1999-03-02 09:44:33 U=CALLER F=<CALLER@spanish.PorquénopuedensimplementehablarenEspañol.local> rejected RCPT <userS@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 -1999-03-02 09:44:33 U=CALLER F=<CALLER@vietnamese.TạisaohọkhôngthểchỉnóitiếngViệt.local> rejected RCPT <userT@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER F=<CALLER@spanish.PorquénopuedensimplementehablarenEspañol.local> rejected RCPT <userS@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER F=<CALLER@vietnamese.TạisaohọkhôngthểchỉnóitiếngViệt.local> rejected RCPT <userT@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 ******** SERVER ******** 1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port 1225 diff --git a/test/log/4216 b/test/log/4216 index 75941e1d3..d753ff657 100644 --- a/test/log/4216 +++ b/test/log/4216 @@ -4,9 +4,9 @@ 1999-03-02 09:44:33 10HmaZ-0005vi-00 <= userW@test.ex U=CALLER P=utf8local-esmtp S=sss for user.ഇരട്ടിമധുരം@test.ex 1999-03-02 09:44:33 10HmaZ-0005vi-00 => user.ഇരട്ടിമധുരം@test.ex F=<userW@test.ex> R=rmt T=rmt_smtp H=127.0.0.1 [127.0.0.1] X=TLS1.x:xxxxRSA_AES_256_CBC_SHAnnn:256 CV=no C="250 OK id=10HmbA-0005vi-00" 1999-03-02 09:44:33 10HmaZ-0005vi-00 Completed -1999-03-02 09:44:33 U=CALLER sender verify fail for <userA@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER sender verify fail for <userA@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 1999-03-02 09:44:33 U=CALLER F=<userA@test.ex> rejected RCPT <user.यष्टिमधु@test.ex>: Sender verify failed -1999-03-02 09:44:33 U=CALLER sender verify fail for <userB.જેઠીમધ@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER sender verify fail for <userB.જેઠીમધ@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 1999-03-02 09:44:33 U=CALLER F=<userB.જેઠીમધ@test.ex> rejected RCPT <user.ქართული@test.ex>: Sender verify failed ******** SERVER ******** diff --git a/test/log/4224 b/test/log/4224 index d58181e24..5d6d6ef10 100644 --- a/test/log/4224 +++ b/test/log/4224 @@ -4,8 +4,8 @@ 1999-03-02 09:44:33 10HmaZ-0005vi-00 <= 세계의모든사람들이한국어를이해한다면얼마나좋을까@russian.почемужеонинеговорятпорусски.com U=CALLER P=utf8local-esmtp S=sss for userR@test.ex 1999-03-02 09:44:33 10HmaZ-0005vi-00 => userr@test.ex <userR@test.ex> F=<세계의모든사람들이한국어를이해한다면얼마나좋을까@russian.почемужеонинеговорятпорусски.com> R=rmt T=rmt_smtp H=127.0.0.1 [127.0.0.1] X=TLSv1:AES256-SHA:256 CV=no C="250 OK id=10HmbA-0005vi-00" 1999-03-02 09:44:33 10HmaZ-0005vi-00 Completed -1999-03-02 09:44:33 U=CALLER F=<CALLER@spanish.PorquénopuedensimplementehablarenEspañol.local> rejected RCPT <userS@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 -1999-03-02 09:44:33 U=CALLER F=<CALLER@vietnamese.TạisaohọkhôngthểchỉnóitiếngViệt.local> rejected RCPT <userT@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER F=<CALLER@spanish.PorquénopuedensimplementehablarenEspañol.local> rejected RCPT <userS@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER F=<CALLER@vietnamese.TạisaohọkhôngthểchỉnóitiếngViệt.local> rejected RCPT <userT@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 ******** SERVER ******** 1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port 1225 diff --git a/test/log/4226 b/test/log/4226 index d2e4a1c8d..56b087d93 100644 --- a/test/log/4226 +++ b/test/log/4226 @@ -4,9 +4,9 @@ 1999-03-02 09:44:33 10HmaZ-0005vi-00 <= userW@test.ex U=CALLER P=utf8local-esmtp S=sss for user.ഇരട്ടിമധുരം@test.ex 1999-03-02 09:44:33 10HmaZ-0005vi-00 => user.ഇരട്ടിമധുരം@test.ex F=<userW@test.ex> R=rmt T=rmt_smtp H=127.0.0.1 [127.0.0.1] X=TLSv1:AES256-SHA:256 CV=no C="250 OK id=10HmbA-0005vi-00" 1999-03-02 09:44:33 10HmaZ-0005vi-00 Completed -1999-03-02 09:44:33 U=CALLER sender verify fail for <userA@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER sender verify fail for <userA@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 1999-03-02 09:44:33 U=CALLER F=<userA@test.ex> rejected RCPT <user.यष्टिमधु@test.ex>: Sender verify failed -1999-03-02 09:44:33 U=CALLER sender verify fail for <userB.જેઠીમધ@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER sender verify fail for <userB.જેઠીમધ@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 1999-03-02 09:44:33 U=CALLER F=<userB.જેઠીમધ@test.ex> rejected RCPT <user.ქართული@test.ex>: Sender verify failed ******** SERVER ******** diff --git a/test/log/5405 b/test/log/5405 index ae3ad767d..a3d2dd452 100644 --- a/test/log/5405 +++ b/test/log/5405 @@ -20,4 +20,4 @@ 1999-03-02 09:44:33 10HmbD-0005vi-00 >> userh@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK" 1999-03-02 09:44:33 10HmbD-0005vi-00 <= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss for userh@domain.com 1999-03-02 09:44:33 10HmbD-0005vi-00 Completed -1999-03-02 09:44:33 U=CALLER F=<CALLER@myhost.test.ex> temporarily rejected RCPT <useri@domain.com>: response to "RCPT TO:<useri@domain.com>" from 127.0.0.1 [127.0.0.1] was: 450 not right now +1999-03-02 09:44:33 U=CALLER F=<CALLER@myhost.test.ex> temporarily rejected RCPT <useri@domain.com>: Could not complete recipient verify callout: response to "RCPT TO:<useri@domain.com>" from 127.0.0.1 [127.0.0.1] was: 450 not right now diff --git a/test/rejectlog/0227 b/test/rejectlog/0227 index 8b2a2a148..33121f92a 100644 --- a/test/rejectlog/0227 +++ b/test/rejectlog/0227 @@ -1,6 +1,6 @@ 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <bad@localhost>: response to "RCPT TO:<bad@localhost>" from 127.0.0.1 [127.0.0.1] was: 550 Unknown user 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: Sender verify failed -1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <uncheckable@localhost1>: response to "RCPT TO:<uncheckable@localhost1>" from 127.0.0.1 [127.0.0.1] was: 450 Temporary error +1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <uncheckable@localhost1>: Could not complete sender verify callout: response to "RCPT TO:<uncheckable@localhost1>" from 127.0.0.1 [127.0.0.1] was: 450 Temporary error 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<uncheckable@localhost1> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <uncheckable2@localhost1>: response to "MAIL FROM:<>" from 127.0.0.1 [127.0.0.1] was: 550 Error for <> 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<uncheckable2@localhost1> rejected RCPT <z@test.ex>: Sender verify failed @@ -31,7 +31,7 @@ F From: abcd@x.y.z 1999-03-02 09:44:33 H=[V4NET.0.0.5] U=root sender verify fail for <ok@localhost1>: response to "RCPT TO:<postmaster@localhost1>" from 127.0.0.1 [127.0.0.1] was: 550 Don't like postmaster 1999-03-02 09:44:33 H=[V4NET.0.0.5] U=root F=<ok@localhost1> rejected RCPT <z@remote.domain>: Sender verify failed 1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.lmtp>: response to "RCPT TO:<z@remote.lmtp>" from 127.0.0.1 [127.0.0.1] was: 550 Recipient not liked -1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <bad@localhost1>: response to "initial connection" from 127.0.0.1 [127.0.0.1] was: connection dropped +1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <bad@localhost1>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] Remote host closed connection in response to initial connection 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost1> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout -1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <bad@localhost1>: could not connect to 127.0.0.1 [127.0.0.1]: Connection refused +1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <bad@localhost1>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] could not connect: Connection refused 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost1> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout diff --git a/test/rejectlog/0365 b/test/rejectlog/0365 index 5dbe6259a..c5985666b 100644 --- a/test/rejectlog/0365 +++ b/test/rejectlog/0365 @@ -16,7 +16,7 @@ P Received: from CALLER by the.local.host.name with local-smtp (Exim x.yz) F From: bad@domain I Message-Id: <E10HmaY-0005vi-00@the.local.host.name> Date: Tue, 2 Mar 1999 09:44:33 +0000 -1999-03-02 09:44:33 U=CALLER sender verify defer for <callout@x>: could not connect to V4NET.0.0.0 [V4NET.0.0.0]: Network Error +1999-03-02 09:44:33 U=CALLER sender verify defer for <callout@x>: Could not complete sender verify callout: V4NET.0.0.0 [V4NET.0.0.0] could not connect: Network Error 1999-03-02 09:44:33 U=CALLER F=<callout@x> temporarily rejected RCPT <x@y>: Could not complete sender verify callout 1999-03-02 09:44:33 10HmaZ-0005vi-00 U=CALLER F=<nosyntax@x> rejected after DATA Envelope-from: <nosyntax@x> @@ -37,15 +37,15 @@ P Received: from CALLER by the.local.host.name with local-smtp (Exim x.yz) F From: <unverifiable@y> I Message-Id: <E10HmbA-0005vi-00@the.local.host.name> Date: Tue, 2 Mar 1999 09:44:33 +0000 -1999-03-02 09:44:33 U=CALLER F=<recipcallout@y> temporarily rejected RCPT <callout@y>: could not connect to V4NET.0.0.0 [V4NET.0.0.0]: Network Error +1999-03-02 09:44:33 U=CALLER F=<recipcallout@y> temporarily rejected RCPT <callout@y>: Could not complete recipient verify callout: V4NET.0.0.0 [V4NET.0.0.0] could not connect: Network Error 1999-03-02 09:44:33 U=CALLER F=<> rejected RCPT <cantverify.fail@y>: failure message 1999-03-02 09:44:33 U=CALLER F=<> temporarily rejected RCPT <cantverify.defer@y>: defer message 1999-03-02 09:44:33 10HmbB-0005vi-00 U=CALLER F=<> rejected after DATA: '>' missing at end of address: failing address in "From:" header is: <bad@syntax 1999-03-02 09:44:33 10HmbC-0005vi-00 U=CALLER F=<> rejected after DATA: there is no valid sender in any header line -1999-03-02 09:44:33 U=CALLER sender verify defer for <callout@x>: could not connect to V4NET.0.0.0 [V4NET.0.0.0]: Network Error +1999-03-02 09:44:33 U=CALLER sender verify defer for <callout@x>: Could not complete sender verify callout: V4NET.0.0.0 [V4NET.0.0.0] could not connect: Network Error 1999-03-02 09:44:33 U=CALLER F=<callout@x> temporarily rejected RCPT <x@y>: Could not complete sender verify callout 1999-03-02 09:44:33 10HmbD-0005vi-00 U=CALLER F=<nosyntax@x> rejected after DATA 1999-03-02 09:44:33 10HmbE-0005vi-00 U=CALLER F=<> rejected after DATA: there is no valid sender in any header line -1999-03-02 09:44:33 U=CALLER F=<recipcallout@y> temporarily rejected RCPT <callout@y>: could not connect to V4NET.0.0.0 [V4NET.0.0.0]: Network Error +1999-03-02 09:44:33 U=CALLER F=<recipcallout@y> temporarily rejected RCPT <callout@y>: Could not complete recipient verify callout: V4NET.0.0.0 [V4NET.0.0.0] could not connect: Network Error 1999-03-02 09:44:33 U=CALLER F=<> rejected RCPT <cantverify.fail@y>: failure message 1999-03-02 09:44:33 U=CALLER F=<> temporarily rejected RCPT <cantverify.defer@y>: defer message diff --git a/test/rejectlog/0376 b/test/rejectlog/0376 index 8cac4a1de..753f33ee6 100644 --- a/test/rejectlog/0376 +++ b/test/rejectlog/0376 @@ -1,4 +1,4 @@ -1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <ok@localhost>: could not connect to 127.0.0.1 [127.0.0.1]: Connection refused +1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <ok@localhost>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] could not connect: Connection refused 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<ok@localhost> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <bad@localhost>: response to "RCPT TO:<bad@localhost>" from 127.0.0.1 [127.0.0.1] was: 550 REJECTED 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: (recipient): Sender verify failed diff --git a/test/rejectlog/0413 b/test/rejectlog/0413 index 1e587828d..d4eed0011 100644 --- a/test/rejectlog/0413 +++ b/test/rejectlog/0413 @@ -1,6 +1,6 @@ -1999-03-02 09:44:33 U=CALLER sender verify defer for <r1@domain1>: response to "RCPT TO:<r1@domain1>" from 127.0.0.1 [127.0.0.1] was: 450 Temporary error +1999-03-02 09:44:33 U=CALLER sender verify defer for <r1@domain1>: Could not complete sender verify callout: response to "RCPT TO:<r1@domain1>" from 127.0.0.1 [127.0.0.1] was: 450 Temporary error 1999-03-02 09:44:33 U=CALLER temporarily rejected MAIL <r1@domain1>: Could not complete sender verify callout -1999-03-02 09:44:33 U=CALLER sender verify defer for <r2@domain2>: response to "RCPT TO:<r2@domain2>" from ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4] was: 450 Temporary error +1999-03-02 09:44:33 U=CALLER sender verify defer for <r2@domain2>: Could not complete sender verify callout: response to "RCPT TO:<r2@domain2>" from ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4] was: 450 Temporary error 1999-03-02 09:44:33 U=CALLER temporarily rejected MAIL <r2@domain2>: Could not complete sender verify callout -1999-03-02 09:44:33 U=CALLER sender verify defer for <r3@domain3>: response to "RCPT TO:<r3@domain3>" from 127.0.0.1 [127.0.0.1] was: 450 Temporary error +1999-03-02 09:44:33 U=CALLER sender verify defer for <r3@domain3>: Could not complete sender verify callout: response to "RCPT TO:<r3@domain3>" from 127.0.0.1 [127.0.0.1] was: 450 Temporary error 1999-03-02 09:44:33 U=CALLER temporarily rejected MAIL <r3@domain3>: Could not complete sender verify callout diff --git a/test/rejectlog/0473 b/test/rejectlog/0473 index c6e216931..8a7593ade 100644 --- a/test/rejectlog/0473 +++ b/test/rejectlog/0473 @@ -1,5 +1,5 @@ 1999-03-02 09:44:33 U=CALLER F=<s3@other.ex> rejected RCPT r3@other.ex: response to "MAIL FROM:<s3@other.ex>" from 127.0.0.1 [127.0.0.1] was: 550 NOTOK -1999-03-02 09:44:33 U=CALLER F=<s4@other.ex> temporarily rejected RCPT r4@other.ex: could not connect to 127.0.0.1 [127.0.0.1]: Connection refused +1999-03-02 09:44:33 U=CALLER F=<s4@other.ex> temporarily rejected RCPT r4@other.ex: Could not complete recipient verify callout: 127.0.0.1 [127.0.0.1] could not connect: Connection refused 1999-03-02 09:44:33 U=CALLER F=<x9@test.ex> rejected RCPT <r9@test.ex>: response to "RCPT TO:<r9@test.ex>" from 127.0.0.1 [127.0.0.1] was: 550 NO 1999-03-02 09:44:33 U=CALLER F=<x9@test.ex> rejected RCPT <r9@test.ex>: Previous (cached) callout verification failure 1999-03-02 09:44:33 U=CALLER sender verify fail for <x9@test.ex>: response to "RCPT TO:<x9@test.ex>" from 127.0.0.1 [127.0.0.1] was: 550 NO @@ -7,4 +7,4 @@ 1999-03-02 09:44:33 U=CALLER sender verify fail for <x9@test.ex> 1999-03-02 09:44:33 U=CALLER F=<x9@test.ex> rejected RCPT <r9@test.ex>: Sender verify failed 1999-03-02 09:44:33 U=CALLER F=<x11@two.test.ex> temporarily rejected RCPT r11@two.test.ex: Could not complete recipient verify callout -1999-03-02 09:44:33 U=CALLER F=<x11@two.test.ex> temporarily rejected RCPT r11@two.test.ex: Could not complete recipient verify callout +1999-03-02 09:44:33 U=CALLER F=<x11@two.test.ex> temporarily rejected RCPT r11@two.test.ex: Could not complete recipient verify callout: 127.0.0.1 [127.0.0.1] SMTP timeout after initial connection diff --git a/test/rejectlog/4204 b/test/rejectlog/4204 index 555b43e40..1ecd9cf88 100644 --- a/test/rejectlog/4204 +++ b/test/rejectlog/4204 @@ -1,5 +1,5 @@ -1999-03-02 09:44:33 U=CALLER F=<CALLER@spanish.PorquénopuedensimplementehablarenEspañol.local> rejected RCPT <userS@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 -1999-03-02 09:44:33 U=CALLER F=<CALLER@vietnamese.TạisaohọkhôngthểchỉnóitiếngViệt.local> rejected RCPT <userT@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER F=<CALLER@spanish.PorquénopuedensimplementehablarenEspañol.local> rejected RCPT <userS@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER F=<CALLER@vietnamese.TạisaohọkhôngthểchỉnóitiếngViệt.local> rejected RCPT <userT@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 ******** SERVER ******** 1999-03-02 09:44:33 H=localhost (the.local.host.name) [127.0.0.1] F=<> rejected RCPT <the.local.host.name-dddddddd-testing@test.ex>: relay not permitted diff --git a/test/rejectlog/4206 b/test/rejectlog/4206 index e2430e4b8..331f0c3ce 100644 --- a/test/rejectlog/4206 +++ b/test/rejectlog/4206 @@ -1,6 +1,6 @@ -1999-03-02 09:44:33 U=CALLER sender verify fail for <userA@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER sender verify fail for <userA@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 1999-03-02 09:44:33 U=CALLER F=<userA@test.ex> rejected RCPT <user.यष्टिमधु@test.ex>: Sender verify failed -1999-03-02 09:44:33 U=CALLER sender verify fail for <userB.જેઠીમધ@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER sender verify fail for <userB.જેઠીમધ@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 1999-03-02 09:44:33 U=CALLER F=<userB.જેઠીમધ@test.ex> rejected RCPT <user.ქართული@test.ex>: Sender verify failed ******** SERVER ******** diff --git a/test/rejectlog/4214 b/test/rejectlog/4214 index bf6cb2398..d2d6046c0 100644 --- a/test/rejectlog/4214 +++ b/test/rejectlog/4214 @@ -1,5 +1,5 @@ -1999-03-02 09:44:33 U=CALLER F=<CALLER@spanish.PorquénopuedensimplementehablarenEspañol.local> rejected RCPT <userS@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 -1999-03-02 09:44:33 U=CALLER F=<CALLER@vietnamese.TạisaohọkhôngthểchỉnóitiếngViệt.local> rejected RCPT <userT@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER F=<CALLER@spanish.PorquénopuedensimplementehablarenEspañol.local> rejected RCPT <userS@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER F=<CALLER@vietnamese.TạisaohọkhôngthểchỉnóitiếngViệt.local> rejected RCPT <userT@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 ******** SERVER ******** 1999-03-02 09:44:33 H=localhost (the.local.host.name) [127.0.0.1] X=TLS1.x:xxxxRSA_AES_256_CBC_SHAnnn:256 CV=no F=<> rejected RCPT <the.local.host.name-dddddddd-testing@test.ex>: relay not permitted diff --git a/test/rejectlog/4216 b/test/rejectlog/4216 index e8d8f00f5..9e78c422a 100644 --- a/test/rejectlog/4216 +++ b/test/rejectlog/4216 @@ -1,6 +1,6 @@ -1999-03-02 09:44:33 U=CALLER sender verify fail for <userA@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER sender verify fail for <userA@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 1999-03-02 09:44:33 U=CALLER F=<userA@test.ex> rejected RCPT <user.यष्टिमधु@test.ex>: Sender verify failed -1999-03-02 09:44:33 U=CALLER sender verify fail for <userB.જેઠીમધ@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER sender verify fail for <userB.જેઠીમધ@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 1999-03-02 09:44:33 U=CALLER F=<userB.જેઠીમધ@test.ex> rejected RCPT <user.ქართული@test.ex>: Sender verify failed ******** SERVER ******** diff --git a/test/rejectlog/4224 b/test/rejectlog/4224 index e36be9236..793a3ad55 100644 --- a/test/rejectlog/4224 +++ b/test/rejectlog/4224 @@ -1,5 +1,5 @@ -1999-03-02 09:44:33 U=CALLER F=<CALLER@spanish.PorquénopuedensimplementehablarenEspañol.local> rejected RCPT <userS@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 -1999-03-02 09:44:33 U=CALLER F=<CALLER@vietnamese.TạisaohọkhôngthểchỉnóitiếngViệt.local> rejected RCPT <userT@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER F=<CALLER@spanish.PorquénopuedensimplementehablarenEspañol.local> rejected RCPT <userS@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER F=<CALLER@vietnamese.TạisaohọkhôngthểchỉnóitiếngViệt.local> rejected RCPT <userT@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 ******** SERVER ******** 1999-03-02 09:44:33 H=localhost (the.local.host.name) [127.0.0.1] X=TLSv1:AES256-SHA:256 CV=no F=<> rejected RCPT <the.local.host.name-dddddddd-testing@test.ex>: relay not permitted diff --git a/test/rejectlog/4226 b/test/rejectlog/4226 index dd75f12fb..77c0b5980 100644 --- a/test/rejectlog/4226 +++ b/test/rejectlog/4226 @@ -1,6 +1,6 @@ -1999-03-02 09:44:33 U=CALLER sender verify fail for <userA@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER sender verify fail for <userA@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 1999-03-02 09:44:33 U=CALLER F=<userA@test.ex> rejected RCPT <user.यष्टिमधु@test.ex>: Sender verify failed -1999-03-02 09:44:33 U=CALLER sender verify fail for <userB.જેઠીમધ@test.ex>: response to "EHLO the.local.host.name" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 +1999-03-02 09:44:33 U=CALLER sender verify fail for <userB.જેઠીમધ@test.ex>: response to "EHLO" from 127.0.0.1 [127.0.0.1] did not include SMTPUTF8 1999-03-02 09:44:33 U=CALLER F=<userB.જેઠીમધ@test.ex> rejected RCPT <user.ქართული@test.ex>: Sender verify failed ******** SERVER ******** diff --git a/test/rejectlog/5405 b/test/rejectlog/5405 index 7df2e1018..fc215f576 100644 --- a/test/rejectlog/5405 +++ b/test/rejectlog/5405 @@ -1,2 +1,2 @@ 1999-03-02 09:44:33 U=CALLER F=<CALLER@myhost.test.ex> temporarily rejected RCPT <userd@domain.com> -1999-03-02 09:44:33 U=CALLER F=<CALLER@myhost.test.ex> temporarily rejected RCPT <useri@domain.com>: response to "RCPT TO:<useri@domain.com>" from 127.0.0.1 [127.0.0.1] was: 450 not right now +1999-03-02 09:44:33 U=CALLER F=<CALLER@myhost.test.ex> temporarily rejected RCPT <useri@domain.com>: Could not complete recipient verify callout: response to "RCPT TO:<useri@domain.com>" from 127.0.0.1 [127.0.0.1] was: 450 not right now diff --git a/test/runtest b/test/runtest index 6721f1daa..a6560aaa7 100755 --- a/test/runtest +++ b/test/runtest @@ -1082,7 +1082,7 @@ RESET_AFTER_EXTRA_LINE_READ: next if /^PDKIM >> Body data for hash, canonicalized/; # Parts of DKIM-specific debug output depend on the time/date - next if /^date:\w+,{SP}/; + next if /^date:\w+,\{SP\}/; next if /^PDKIM \[[^[]+\] (Header hash|b) computed:/; # Not all platforms support TCP Fast Open, and the compile omits the check @@ -3940,7 +3940,8 @@ foreach $test (@test_list) if ($? != 0) { if (($? & 0xff) == 0) - { printf("Server return code %d", $?/256); } + { printf("Server return code %d for test %d starting line %d", $?/256, + $testno, $subtest_startline); } elsif (($? & 0xff00) == 0) { printf("Server killed by signal %d", $? & 255); } else diff --git a/test/stderr/0227 b/test/stderr/0227 index d676f05a7..7fa279d38 100644 --- a/test/stderr/0227 +++ b/test/stderr/0227 @@ -50,7 +50,7 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected SMTP<< 250 OK SMTP(close)>> LOG: MAIN REJECT - H=[V4NET.0.0.1] U=root sender verify defer for <uncheckable@localhost1>: response to "RCPT TO:<uncheckable@localhost1>" from 127.0.0.1 [127.0.0.1] was: 450 Temporary error + H=[V4NET.0.0.1] U=root sender verify defer for <uncheckable@localhost1>: Could not complete sender verify callout: response to "RCPT TO:<uncheckable@localhost1>" from 127.0.0.1 [127.0.0.1] was: 450 Temporary error LOG: MAIN REJECT H=[V4NET.0.0.1] U=root F=<uncheckable@localhost1> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout LOG: smtp_connection MAIN @@ -254,10 +254,9 @@ LOG: smtp_connection MAIN LOG: smtp_connection MAIN SMTP connection from root Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected - SMTP>> QUIT SMTP(close)>> LOG: MAIN REJECT - H=[V4NET.0.0.1] U=root sender verify defer for <bad@localhost1>: response to "initial connection" from 127.0.0.1 [127.0.0.1] was: connection dropped + H=[V4NET.0.0.1] U=root sender verify defer for <bad@localhost1>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] Remote host closed connection in response to initial connection LOG: MAIN REJECT H=[V4NET.0.0.1] U=root F=<bad@localhost1> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout LOG: smtp_connection MAIN @@ -266,7 +265,7 @@ LOG: smtp_connection MAIN SMTP connection from root Connecting to 127.0.0.1 [127.0.0.1]:1224 ... failed: Connection refused LOG: MAIN REJECT - H=[V4NET.0.0.1] U=root sender verify defer for <bad@localhost1>: could not connect to 127.0.0.1 [127.0.0.1]: Connection refused + H=[V4NET.0.0.1] U=root sender verify defer for <bad@localhost1>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] could not connect: Connection refused LOG: MAIN REJECT H=[V4NET.0.0.1] U=root F=<bad@localhost1> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout LOG: smtp_connection MAIN diff --git a/test/stderr/0376 b/test/stderr/0376 index 652477e75..4ad0556b9 100644 --- a/test/stderr/0376 +++ b/test/stderr/0376 @@ -63,7 +63,7 @@ interface=NULL port=1224 Connecting to 127.0.0.1 [127.0.0.1]:1224 ... failed: Connection refused connect: Connection refused LOG: MAIN REJECT - H=[V4NET.0.0.1] U=root sender verify defer for <ok@localhost>: could not connect to 127.0.0.1 [127.0.0.1]: Connection refused + H=[V4NET.0.0.1] U=root sender verify defer for <ok@localhost>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] could not connect: Connection refused created log directory TESTSUITE/spool/log LOG: MAIN REJECT H=[V4NET.0.0.1] U=root F=<ok@localhost> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout diff --git a/test/stderr/0398 b/test/stderr/0398 index 7489a19a1..cb1d4e58b 100644 --- a/test/stderr/0398 +++ b/test/stderr/0398 @@ -135,6 +135,8 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected SMTP>> EHLO mail.test.ex cmd buf flush ddd bytes SMTP<< 250 OK +not using PIPELINING +not using DSN 127.0.0.1 in hosts_require_auth? no (option unset) SMTP>> MAIL FROM:<> cmd buf flush ddd bytes diff --git a/test/stderr/0432 b/test/stderr/0432 index f819fb0b2..561e816b2 100644 --- a/test/stderr/0432 +++ b/test/stderr/0432 @@ -96,6 +96,8 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected SMTP>> EHLO myhost.test.ex cmd buf flush ddd bytes SMTP<< 250 OK +not using PIPELINING +not using DSN 127.0.0.1 in hosts_require_auth? no (option unset) SMTP>> MAIL FROM:<> cmd buf flush ddd bytes @@ -307,9 +309,9 @@ MUNGED: ::1 will be omitted in what follows >>> 127.0.0.1 in hosts_avoid_esmtp? no (option unset) >>> SMTP>> EHLO myhost.test.ex >>> cmd buf flush 21 bytes ->>> SMTP timeout >>> SMTP(close)>> +>>> SMTP timeout >>> ----------- end verify ------------ >>> accept: condition test deferred in ACL "mail" -LOG: H=[1.2.3.4] sender verify defer for <p1@q>: Could not complete sender verify callout +LOG: H=[1.2.3.4] sender verify defer for <p1@q>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] SMTP timeout after EHLO myhost.test.ex LOG: H=[1.2.3.4] temporarily rejected MAIL <p1@q>: Could not complete sender verify callout diff --git a/test/stderr/0473 b/test/stderr/0473 index ed7bc5359..048762f95 100644 --- a/test/stderr/0473 +++ b/test/stderr/0473 @@ -43,10 +43,10 @@ callout cache: found domain record for two.test.ex callout cache: no address record found for r11@two.test.ex interface=NULL port=1224 Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected -SMTP timeout SMTP(close)>> +SMTP timeout LOG: MAIN REJECT - U=CALLER F=<x11@two.test.ex> temporarily rejected RCPT r11@two.test.ex: Could not complete recipient verify callout + U=CALLER F=<x11@two.test.ex> temporarily rejected RCPT r11@two.test.ex: Could not complete recipient verify callout: 127.0.0.1 [127.0.0.1] SMTP timeout after initial connection LOG: smtp_connection MAIN SMTP connection from CALLER closed by QUIT >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/5410 b/test/stderr/5410 index cb1b31b72..2efd8419c 100644 --- a/test/stderr/5410 +++ b/test/stderr/5410 @@ -115,8 +115,11 @@ cmd buf flush ddd bytes 250-8BITMIME 250-PIPELINING 250 HELP +127.0.0.1 in hosts_avoid_pipelining? no (option unset) +using PIPELINING +not using DSN 127.0.0.1 in hosts_require_auth? no (option unset) - SMTP>> MAIL FROM:<CALLER@myhost.test.ex> + SMTP>> MAIL FROM:<CALLER@myhost.test.ex> SIZE=ssss cmd buf flush ddd bytes SMTP<< 250 OK SMTP>> RCPT TO:<userx@domain.com> @@ -327,8 +330,11 @@ considering: *}{:}} expanding: ${if eq {$address_data}{usery}{*}{:}} result: * 127.0.0.1 in hosts_avoid_tls? yes (matched "*") +127.0.0.1 in hosts_avoid_pipelining? no (option unset) +using PIPELINING +not using DSN 127.0.0.1 in hosts_require_auth? no (option unset) - SMTP>> MAIL FROM:<CALLER@myhost.test.ex> + SMTP>> MAIL FROM:<CALLER@myhost.test.ex> SIZE=ssss cmd buf flush ddd bytes SMTP<< 250 OK SMTP>> RCPT TO:<usery@domain.com> @@ -539,8 +545,11 @@ considering: *}{:}} expanding: ${if eq {$address_data}{usery}{*}{:}} result: * 127.0.0.1 in hosts_avoid_tls? yes (matched "*") +127.0.0.1 in hosts_avoid_pipelining? no (option unset) +using PIPELINING +not using DSN 127.0.0.1 in hosts_require_auth? no (option unset) - SMTP>> MAIL FROM:<CALLER@myhost.test.ex> + SMTP>> MAIL FROM:<CALLER@myhost.test.ex> SIZE=ssss cmd buf flush ddd bytes SMTP<< 250 OK SMTP>> RCPT TO:<usery@domain.com> diff --git a/test/stderr/5420 b/test/stderr/5420 index 8ccf0fd6c..eb3f1a9d2 100644 --- a/test/stderr/5420 +++ b/test/stderr/5420 @@ -114,8 +114,11 @@ cmd buf flush ddd bytes 250-8BITMIME 250-PIPELINING 250 HELP +127.0.0.1 in hosts_avoid_pipelining? no (option unset) +using PIPELINING +not using DSN 127.0.0.1 in hosts_require_auth? no (option unset) - SMTP>> MAIL FROM:<CALLER@myhost.test.ex> + SMTP>> MAIL FROM:<CALLER@myhost.test.ex> SIZE=ssss cmd buf flush ddd bytes SMTP<< 250 OK SMTP>> RCPT TO:<userx@domain.com> @@ -326,8 +329,11 @@ considering: *}{:}} expanding: ${if eq {$address_data}{usery}{*}{:}} result: * 127.0.0.1 in hosts_avoid_tls? yes (matched "*") +127.0.0.1 in hosts_avoid_pipelining? no (option unset) +using PIPELINING +not using DSN 127.0.0.1 in hosts_require_auth? no (option unset) - SMTP>> MAIL FROM:<CALLER@myhost.test.ex> + SMTP>> MAIL FROM:<CALLER@myhost.test.ex> SIZE=ssss cmd buf flush ddd bytes SMTP<< 250 OK SMTP>> RCPT TO:<usery@domain.com> @@ -538,8 +544,11 @@ considering: *}{:}} expanding: ${if eq {$address_data}{usery}{*}{:}} result: * 127.0.0.1 in hosts_avoid_tls? yes (matched "*") +127.0.0.1 in hosts_avoid_pipelining? no (option unset) +using PIPELINING +not using DSN 127.0.0.1 in hosts_require_auth? no (option unset) - SMTP>> MAIL FROM:<CALLER@myhost.test.ex> + SMTP>> MAIL FROM:<CALLER@myhost.test.ex> SIZE=ssss cmd buf flush ddd bytes SMTP<< 250 OK SMTP>> RCPT TO:<usery@domain.com> diff --git a/test/stderr/5840 b/test/stderr/5840 index 97fdca69d..b588681d3 100644 --- a/test/stderr/5840 +++ b/test/stderr/5840 @@ -20,12 +20,12 @@ >>> Attempting full verification using callout >>> callout cache: no domain record found for dane256ee.test.ex >>> callout cache: no address record found for rcptuser@dane256ee.test.ex ->>> interface=NULL port=1225 ->>> Connecting to dane256ee.test.ex [ip4.ip4.ip4.ip4]:1225 ... connected MUNGED: ::1 will be omitted in what follows >>> get[host|ipnode]byname[2] looked up these IP addresses: >>> name=thishost.test.ex address=127.0.0.1 >>> ip4.ip4.ip4.ip4 in hosts_require_dane? yes (end of list) +>>> interface=NULL port=1225 +>>> Connecting to dane256ee.test.ex [ip4.ip4.ip4.ip4]:1225 ... connected >>> SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 >>> ip4.ip4.ip4.ip4 in hosts_avoid_esmtp? no (option unset) >>> SMTP>> EHLO myhost.test.ex @@ -51,9 +51,10 @@ MUNGED: ::1 will be omitted in what follows >>> 250-8BITMIME >>> 250-PIPELINING >>> 250 HELP +>>> ip4.ip4.ip4.ip4 in hosts_avoid_pipelining? no (option unset) >>> ip4.ip4.ip4.ip4 in hosts_require_auth? no (option unset) ->>> SMTP>> MAIL FROM:<> ->>> cmd buf flush 14 bytes +>>> SMTP>> MAIL FROM:<> SIZE=ssss +>>> cmd buf flush 24 bytes >>> SMTP<< 250 OK >>> SMTP>> RCPT TO:<rcptuser@dane256ee.test.ex> >>> cmd buf flush 38 bytes diff --git a/test/stdout/0365 b/test/stdout/0365 index 0d6e07977..f05930041 100644 --- a/test/stdout/0365 +++ b/test/stdout/0365 @@ -40,7 +40,7 @@ 550-Rejected after DATA: could not verify "From:" header address
550 bad@domain: Unrouteable address
250 OK
-451-could not connect to V4NET.0.0.0 [V4NET.0.0.0]: Network Error
+451-Could not complete sender verify callout: V4NET.0.0.0 [V4NET.0.0.0] could not connect: Network Error
451-Could not complete sender verify callout for <callout@x>.
451-The mail server(s) for the domain may be temporarily unreachable, or
451-they may be permanently unreachable from this server. In the latter case,
diff --git a/test/stdout/4204 b/test/stdout/4204 index 6944afbe0..0f9825128 100644 --- a/test/stdout/4204 +++ b/test/stdout/4204 @@ -30,7 +30,7 @@ 250-SMTPUTF8
250 HELP
250 OK
-533 mailbox name not allowed
+533 no support for internationalised mailbox name
221 the.local.host.name closing connection
220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
250-the.local.host.name Hello CALLER at client.ffail
@@ -40,5 +40,5 @@ 250-SMTPUTF8
250 HELP
250 OK
-533 mailbox name not allowed
+533 no support for internationalised mailbox name
221 the.local.host.name closing connection
diff --git a/test/stdout/4206 b/test/stdout/4206 index a88d667d5..057ddb3aa 100644 --- a/test/stdout/4206 +++ b/test/stdout/4206 @@ -30,13 +30,8 @@ 250-SMTPUTF8
250 HELP
250 OK
-550-Callback setup failed while verifying <userA@test.ex>
-550-533 mailbox name not allowed
-550-The initial connection, or a HELO or MAIL FROM:<> command was
-550-rejected. Refusing MAIL FROM:<> does not help fight spam, disregards
-550-RFC requirements, and stops you from receiving standard bounce
-550-messages. This host does not accept mail from domains whose servers
-550-refuse bounces.
+550-Verification failed for <userA@test.ex>
+550-533 no support for internationalised mailbox name
550 Sender verify failed
221 the.local.host.name closing connection
220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
@@ -47,12 +42,7 @@ 250-SMTPUTF8
250 HELP
250 OK
-550-Callback setup failed while verifying <userB.જેઠીમધ@test.ex>
-550-533 mailbox name not allowed
-550-The initial connection, or a HELO or MAIL FROM:<> command was
-550-rejected. Refusing MAIL FROM:<> does not help fight spam, disregards
-550-RFC requirements, and stops you from receiving standard bounce
-550-messages. This host does not accept mail from domains whose servers
-550-refuse bounces.
+550-Verification failed for <userB.જેઠીમધ@test.ex>
+550-533 no support for internationalised mailbox name
550 Sender verify failed
221 the.local.host.name closing connection
diff --git a/test/stdout/4214 b/test/stdout/4214 index 01f10201b..211eedac7 100644 --- a/test/stdout/4214 +++ b/test/stdout/4214 @@ -33,7 +33,7 @@ 250-SMTPUTF8
250 HELP
250 OK
-533 mailbox name not allowed
+533 no support for internationalised mailbox name
221 the.local.host.name closing connection
220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
250-the.local.host.name Hello CALLER at client.ffail
@@ -44,5 +44,5 @@ 250-SMTPUTF8
250 HELP
250 OK
-533 mailbox name not allowed
+533 no support for internationalised mailbox name
221 the.local.host.name closing connection
diff --git a/test/stdout/4216 b/test/stdout/4216 index 9194ebc41..fda7256be 100644 --- a/test/stdout/4216 +++ b/test/stdout/4216 @@ -33,13 +33,8 @@ 250-SMTPUTF8
250 HELP
250 OK
-550-Callback setup failed while verifying <userA@test.ex>
-550-533 mailbox name not allowed
-550-The initial connection, or a HELO or MAIL FROM:<> command was
-550-rejected. Refusing MAIL FROM:<> does not help fight spam, disregards
-550-RFC requirements, and stops you from receiving standard bounce
-550-messages. This host does not accept mail from domains whose servers
-550-refuse bounces.
+550-Verification failed for <userA@test.ex>
+550-533 no support for internationalised mailbox name
550 Sender verify failed
221 the.local.host.name closing connection
220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
@@ -51,12 +46,7 @@ 250-SMTPUTF8
250 HELP
250 OK
-550-Callback setup failed while verifying <userB.જેઠીમધ@test.ex>
-550-533 mailbox name not allowed
-550-The initial connection, or a HELO or MAIL FROM:<> command was
-550-rejected. Refusing MAIL FROM:<> does not help fight spam, disregards
-550-RFC requirements, and stops you from receiving standard bounce
-550-messages. This host does not accept mail from domains whose servers
-550-refuse bounces.
+550-Verification failed for <userB.જેઠીમધ@test.ex>
+550-533 no support for internationalised mailbox name
550 Sender verify failed
221 the.local.host.name closing connection
diff --git a/test/stdout/4224 b/test/stdout/4224 index 01f10201b..211eedac7 100644 --- a/test/stdout/4224 +++ b/test/stdout/4224 @@ -33,7 +33,7 @@ 250-SMTPUTF8
250 HELP
250 OK
-533 mailbox name not allowed
+533 no support for internationalised mailbox name
221 the.local.host.name closing connection
220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
250-the.local.host.name Hello CALLER at client.ffail
@@ -44,5 +44,5 @@ 250-SMTPUTF8
250 HELP
250 OK
-533 mailbox name not allowed
+533 no support for internationalised mailbox name
221 the.local.host.name closing connection
diff --git a/test/stdout/4226 b/test/stdout/4226 index 9194ebc41..fda7256be 100644 --- a/test/stdout/4226 +++ b/test/stdout/4226 @@ -33,13 +33,8 @@ 250-SMTPUTF8
250 HELP
250 OK
-550-Callback setup failed while verifying <userA@test.ex>
-550-533 mailbox name not allowed
-550-The initial connection, or a HELO or MAIL FROM:<> command was
-550-rejected. Refusing MAIL FROM:<> does not help fight spam, disregards
-550-RFC requirements, and stops you from receiving standard bounce
-550-messages. This host does not accept mail from domains whose servers
-550-refuse bounces.
+550-Verification failed for <userA@test.ex>
+550-533 no support for internationalised mailbox name
550 Sender verify failed
221 the.local.host.name closing connection
220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
@@ -51,12 +46,7 @@ 250-SMTPUTF8
250 HELP
250 OK
-550-Callback setup failed while verifying <userB.જેઠીમધ@test.ex>
-550-533 mailbox name not allowed
-550-The initial connection, or a HELO or MAIL FROM:<> command was
-550-rejected. Refusing MAIL FROM:<> does not help fight spam, disregards
-550-RFC requirements, and stops you from receiving standard bounce
-550-messages. This host does not accept mail from domains whose servers
-550-refuse bounces.
+550-Verification failed for <userB.જેઠીમધ@test.ex>
+550-533 no support for internationalised mailbox name
550 Sender verify failed
221 the.local.host.name closing connection
|