# For development, add this to include code to time various stages and report.
# CFLAGS += -DMEASURE_TIMING
+# For a very slightly smaller build, for constrained systems, uncomment this.
+# The feature involved is purely for debugging.
+
+# DISABLE_CLIENT_CMD_LOG=yes
+
# End of EDITME for Exim 4.
#define DEFAULT_CRYPT crypt
#define DELIVER_IN_BUFFER_SIZE 8192
#define DELIVER_OUT_BUFFER_SIZE 8192
+
+#define DISABLE_CLIENT_CMD_LOG
+#define DISABLE_D_OPTION
#define DISABLE_DNSSEC
#define DISABLE_DKIM
#define DISABLE_EVENT
#define DISABLE_QUEUE_RAMP
#define DISABLE_TLS
#define DISABLE_TLS_RESUME
-#define DISABLE_D_OPTION
#define ENABLE_DISABLE_FSYNC
return poll(&p, 1, tmo_millisec);
}
+/******************************************************************************/
+/* Client-side smtp log string, for debug */
+
+static inline void
+smtp_debug_cmd(const uschar * buf, int mode)
+{
+HDEBUG(D_transport|D_acl|D_v) debug_printf_indent(" SMTP%c> %s\n",
+ mode == SCMD_BUFFER ? '|' : mode == SCMD_MORE ? '+' : '>', buf);
+
+# ifndef DISABLE_CLIENT_CMD_LOG
+ {
+ int old_pool = store_pool;
+ store_pool = POOL_PERM; /* Main pool ACL allocations eg. callouts get released */
+ client_cmd_log = string_append_listele_n(client_cmd_log, ':', buf,
+ Ustrcspn(buf, " \n"));
+ if (mode == SCMD_BUFFER)
+ {
+ client_cmd_log = string_catn(client_cmd_log, US"|", 1);
+ (void) string_from_gstring(client_cmd_log);
+ }
+ store_pool = old_pool;
+ }
+# endif
+}
+
+
+static inline void
+smtp_debug_cmd_report(void)
+{
+# ifndef DISABLE_CLIENT_CMD_LOG
+debug_printf("cmdlog: '%s'\n", client_cmd_log ? client_cmd_log->s : US"(unset)");
+# endif
+}
+
+
+
# endif /* !COMPILE_UTILITY */
/******************************************************************************/
uschar *client_authenticator = NULL;
uschar *client_authenticated_id = NULL;
uschar *client_authenticated_sender = NULL;
+#ifndef DISABLE_CLIENT_CMD_LOG
+gstring *client_cmd_log = NULL;
+#endif
int clmacro_count = 0;
uschar *clmacros[MAX_CLMACROS];
FILE *config_file = NULL;
extern uschar *client_authenticator; /* Authenticator name used for smtp delivery */
extern uschar *client_authenticated_id; /* "login" name used for SMTP AUTH */
extern uschar *client_authenticated_sender; /* AUTH option to SMTP MAIL FROM (not yet used) */
+#ifndef DISABLE_CLIENT_CMD_LOG
+extern gstring *client_cmd_log; /* debug log of client cmds & responses */
+#endif
extern int clmacro_count; /* Number of command line macros */
extern uschar *clmacros[]; /* Copy of them, for re-exec */
extern BOOL commandline_checks_require_admin; /* belt and braces for insecure setups */
+/* This might be called both due to callout and then from delivery.
+Use memory that will not be released between those phases.
+*/
+static void
+smtp_debug_resp(const uschar * buf)
+{
+#ifndef DISABLE_CLIENT_CMD_LOG
+int old_pool = store_pool;
+store_pool = POOL_PERM;
+client_cmd_log = string_append_listele_n(client_cmd_log, ':', buf,
+ buf[3] == ' ' ? 3 : 4);
+store_pool = old_pool;
+#endif
+}
+
+
/*************************************************
* Write SMTP command *
*************************************************/
*/
int
-smtp_write_command(void * sx, int mode, const char *format, ...)
+smtp_write_command(void * sx, int mode, const char * format, ...)
{
smtp_outblock * outblock = &((smtp_context *)sx)->outblock;
int rc = 0;
while (*p) *p++ = '*';
}
- HDEBUG(D_transport|D_acl|D_v) debug_printf_indent(" SMTP%c> %s\n",
- mode == SCMD_BUFFER ? '|' : mode == SCMD_MORE ? '+' : '>',
- big_buffer);
+ smtp_debug_cmd(big_buffer, mode);
}
if (mode != SCMD_BUFFER)
uschar * ptr = buffer;
int count = 0;
time_t timelimit = time(NULL) + timeout;
+BOOL yield = FALSE;
errno = 0; /* Ensure errno starts out zero */
+buffer[0] = '\0';
#ifndef DISABLE_PIPE_CONNECT
if (sx->pending_BANNER || sx->pending_EHLO)
if ((rc = smtp_reap_early_pipe(sx, &count)) != OK)
{
DEBUG(D_transport) debug_printf("failed reaping pipelined cmd responsess\n");
- buffer[0] = '\0';
if (rc == DEFER) errno = ERRNO_TLSFAILURE;
- return FALSE;
+ goto out;
}
}
#endif
(ptr[3] != '-' && ptr[3] != ' ' && ptr[3] != 0))
{
errno = ERRNO_SMTPFORMAT; /* format error */
- return FALSE;
+ goto out;
}
/* If the line we have just read is a terminal line, line, we are done.
timeouts, lost connections, etc. */
errno = 0;
-return buffer[0] == okdigit;
+yield = buffer[0] == okdigit;
+
+out:
+ smtp_debug_resp(buffer);
+ return yield;
}
/* End of smtp_out.c */
}
static pooldesc *
-pool_for_pointer(const void * p)
+pool_for_pointer(const void * p, const char * func, int linenumber)
{
pooldesc * pp;
storeblock * b;
for (b = pp->chainbase; b; b = b->next)
if (is_pointer_in_block(b, p)) return pp;
-log_write(0, LOG_MAIN|LOG_PANIC_DIE, "bad memory reference; pool not found");
+log_write(0, LOG_MAIN|LOG_PANIC_DIE,
+ "bad memory reference; pool not found, at %s %d", func, linenumber);
return NULL;
}
store_extend_3(void * ptr, int oldsize, int newsize,
const char * func, int linenumber)
{
-pooldesc * pp = pool_for_pointer(ptr);
+pooldesc * pp = pool_for_pointer(ptr, func, linenumber);
int inc = newsize - oldsize;
int rounded_oldsize = oldsize;
store_newblock_3(void * oldblock, int newsize, int len,
const char * func, int linenumber)
{
-pooldesc * pp = pool_for_pointer(oldblock);
+pooldesc * pp = pool_for_pointer(oldblock, func, linenumber);
BOOL release_ok = !is_tainted(oldblock) && pp->store_last_get == oldblock; /*XXX why tainted not handled? */
uschar * newblock;
unsigned size = ((count + inc) & ~inc) + 1; /* round up requested count */
g = string_get_tainted(size, s);
}
+else if (!g->s) /* should not happen */
+ {
+ g->s = string_copyn(s, count);
+ g->ptr = count;
+ g->size = count; /*XXX suboptimal*/
+ return g;
+ }
else if (is_incompatible(g->s, s))
{
/* debug_printf("rebuf A\n"); */
/* If requested, add a terminating "." line (SMTP output). */
-if (tctx->options & topt_end_dot && !write_chunk(tctx, US".\n", 2))
- return FALSE;
+if (tctx->options & topt_end_dot)
+ {
+ smtp_debug_cmd(US".", 0);
+ if (!write_chunk(tctx, US".\n", 2))
+ return FALSE;
+ }
/* Write out any remaining data in the buffer before returning. */
? !write_chunk(tctx, US".\n", 2)
: !write_chunk(tctx, US"\n.\n", 3)
) )
- yield = FALSE;
+ { smtp_debug_cmd(US".", 0); yield = FALSE; }
/* Write out any remaining data in the buffer. */
DEBUG(D_transport)
debug_printf("Closing proxied-TLS connection due to SNI mismatch\n");
- HDEBUG(D_transport|D_acl|D_v) debug_printf_indent(" SMTP>> QUIT\n");
+ smtp_debug_cmd(US"QUIT", 0);
write(0, "QUIT\r\n", 6);
close(0);
continue_hostname = continue_proxy_cipher = NULL;
sx->peer_limit_mail = sx->peer_limit_rcpt = sx->peer_limit_rcptdom =
#endif
sx->avoid_option = sx->peer_offered = smtp_peer_options = 0;
+#ifndef DISABLE_CLIENT_CMD_LOG
+ client_cmd_log = NULL;
+#endif
#ifndef DISABLE_PIPE_CONNECT
if ( verify_check_given_host(CUSS &ob->hosts_pipe_connect,
(void) event_raise(sx->conn_args.tblock->event_action, US"tcp:close", NULL, NULL);
#endif
+smtp_debug_cmd_report();
continue_transport = NULL;
continue_hostname = NULL;
return yield;
sx->cctx.sock = -1;
continue_transport = NULL;
continue_hostname = NULL;
+smtp_debug_cmd_report();
#ifndef DISABLE_EVENT
(void) event_raise(tblock->event_action, US"tcp:close", NULL, NULL);
HDEBUG(D_transport|D_acl|D_v) debug_printf_indent(" SMTP(close)>>\n");
(void)close(sx->cctx.sock);
sx->cctx.sock = -1;
+ smtp_debug_cmd_report();
#ifndef DISABLE_EVENT
(void) event_raise(addr->transport->event_action, US"tcp:close", NULL, NULL);
#endif
if(cutthrough.cctx.sock < 0 || cutthrough.callout_hold_only)
return FALSE;
-HDEBUG(D_transport|D_acl|D_v) debug_printf_indent(" SMTP>> DATA\n");
+smtp_debug_cmd(US"DATA", 0);
cutthrough_puts(US"DATA\r\n", 6);
cutthrough_flush_send();
*/
client_conn_ctx tmp_ctx = cutthrough.cctx;
ctctx.outblock.ptr = ctbuffer;
- HDEBUG(D_transport|D_acl|D_v) debug_printf_indent(" SMTP>> QUIT\n");
+ smtp_debug_cmd(US"QUIT", 0);
_cutthrough_puts(US"QUIT\r\n", 6); /* avoid recursion */
_cutthrough_flush_send();
cutthrough.cctx.sock = -1; /* avoid recursion via read timeout */
#endif
HDEBUG(D_transport|D_acl|D_v) debug_printf_indent(" SMTP(close)>>\n");
(void)close(fd);
+ smtp_debug_cmd_report();
HDEBUG(D_acl) debug_printf_indent("----------- cutthrough shutdown (%s) ------------\n", why);
}
ctctx.outblock.ptr = ctbuffer;
SMTP<< 354 Send data
SMTP>> writing message and terminating "."
cannot use sendfile for body: spoolfile not wireformat
+ SMTP>> .
writing data block fd=dddd size=sss timeout=300
SMTP<< 250 OK
ok=1 send_quit=1 send_rset=0 continue_more=0 yield=0 first_address is NULL
SMTP(shutdown)>>
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL:250:RCPT:250:DATA:354:.:250:QUIT:250'
Leaving my_smtp transport
LOG: MAIN
=> userx@domain.com R=my_main_router T=my_smtp H=127.0.0.1 [127.0.0.1] C="250 OK"
SMTP(shutdown)>>
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT:250:250:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:RCPT|:DATA:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:550:55
+**** debug string too long - truncated ****
LOG: MAIN
== yes@test.ex R=client T=send_to_server defer (-46) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined DATA: 403 Sorry temp data error
LOG: MAIN
SMTP>> DATA
SMTP<< 351 Send more
SMTP>> writing message and terminating "."
+ SMTP>> .
SMTP<< 250 OK
SMTP+> QUIT
SMTP(shutdown)>>
SMTP(closed)<<
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL:250:RCPT:250:RCPT:250:RCPT:250:RCPT:250:DATA:351:.:250:QUIT'
LOG: MAIN
=> w@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1] C="250 OK"
LOG: MAIN
SMTP<< 250 OK
SMTP<< 351 Send more
SMTP>> writing message and terminating "."
+ SMTP>> .
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:351:.:250'
LOG: MAIN
=> a@test.ex F=<CALLER@test.ex> R=client T=send_to_server H=127.0.0.1 [127.0.0.1] L C="250 OK"
LOG: MAIN
SMTP<< 250 OK
SMTP<< 351 Send more
SMTP>> writing message and terminating "."
+ SMTP>> .
SMTP+> QUIT
SMTP(shutdown)>>
SMTP<< 250 OK
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: 'MAIL|:RCPT|:DATA:250:250:351:.:QUIT:250:250'
LOG: MAIN
=> b@test.ex F=<CALLER@test.ex> R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* L C="250 OK"
LOG: MAIN
SMTP(shutdown)>>
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:550:503:503:QUIT:250'
LOG: MAIN
** a@test.ex F=<CALLER@test.ex> R=client T=send_to_server H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined MAIL FROM:<CALLER@test.ex>: 550 NO
Exim version x.yz ....
SMTP>> RSET
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:550:503:RSET:250'
LOG: MAIN
** b@test.ex F=<CALLER@test.ex> R=client T=send_to_server H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<b@test.ex>: 550 Unknown
Exim version x.yz ....
SMTP<< 250 OK
SMTP<< 351 OK
SMTP>> writing message and terminating "."
+ SMTP>> .
SMTP+> QUIT
SMTP(shutdown)>>
SMTP<< 250 OK
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: 'MAIL|:RCPT|:DATA:250:250:351:.:QUIT:250:250'
LOG: MAIN
=> c@test.ex F=<CALLER@test.ex> R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* L C="250 OK"
LOG: MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:QUIT:250'
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
LOG: smtp_connection MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:QUIT:250'
LOG: MAIN REJECT
H=(test) [V4NET.0.0.1] U=root sender verify fail for <bad@localhost>: 127.0.0.1 [127.0.0.1] : SMTP error from remote mail server after RCPT TO:<bad@localhost>: 550 Unknown user
LOG: MAIN REJECT
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:450:QUIT:250'
LOG: MAIN REJECT
H=(test) [V4NET.0.0.1] U=root sender verify defer for <uncheckable@localhost1>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] : SMTP error from remote mail server after RCPT TO:<uncheckable@localhost1>: 450 Temporary error
LOG: MAIN REJECT
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:550:QUIT:250'
LOG: MAIN REJECT
H=(test) [V4NET.0.0.1] U=root sender verify fail for <uncheckable2@localhost1>: 127.0.0.1 [127.0.0.1] : response to "MAIL FROM:<>" was: 550 Error for <>
LOG: MAIN REJECT
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:550-:QUIT:250'
LOG: MAIN REJECT
H=(test) [V4NET.0.0.1] U=root sender verify fail for <uncheckable@localhost1>: 127.0.0.1 [127.0.0.1] : response to "MAIL FROM:<>" was: 550-Multiline error for <>\n550 Here's the second line
LOG: MAIN REJECT
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:550:QUIT:250'
LOG: MAIN REJECT
H=(test) [V4NET.0.0.1] U=root sender verify fail for <uncheckable2@localhost1>: 127.0.0.1 [127.0.0.1] : response to "MAIL FROM:<>" was: 550 Bad-char error for <> topbitchar:\200\377\377
LOG: MAIN REJECT
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:QUIT:250'
LOG: MAIN REJECT
H=(test) [V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.domain>: 127.0.0.1 [127.0.0.1] : SMTP error from remote mail server after RCPT TO:<z@remote.domain>: 550 Recipient not liked
LOG: smtp_connection MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:550-:QUIT:250'
LOG: MAIN REJECT
H=(test) [V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.domain>: 127.0.0.1 [127.0.0.1] : SMTP error from remote mail server after RCPT TO:<z@remote.domain>: 550-Recipient not liked on two lines\n550 Here's the second
LOG: smtp_connection MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:QUIT:250'
LOG: MAIN REJECT
H=(test) [V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.domain>: 127.0.0.1 [127.0.0.1] : SMTP error from remote mail server after RCPT TO:<z@remote.domain>: 550 Recipient not liked, with bad char:\200\377\377
LOG: smtp_connection MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:QUIT:250'
LOG: MAIN REJECT
H=(test) [V4NET.0.0.4] U=root F=<uncheckable@localhost1> rejected after DATA: there is no valid sender in any header line
LOG: smtp_connection MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:QUIT:250'
LOG: MAIN REJECT
H=(test) [V4NET.0.0.4] U=root F=<uncheckable@localhost1> rejected after DATA: there is no valid sender in any header line
LOG: smtp_connection MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:RSET:250:MAIL:250:RCPT:250:QUIT:250'
LOG: MAIN REJECT
H=(test) [V4NET.0.0.5] U=root F=<ok@localhost1> rejected RCPT <z@remote.domain>: relay not permitted
LOG: smtp_connection MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:RSET:250:MAIL:250:RCPT:550:QUIT:250'
LOG: MAIN REJECT
H=(test) [V4NET.0.0.5] U=root sender verify fail for <ok@localhost1>: 127.0.0.1 [127.0.0.1] : SMTP error from remote mail server after RCPT TO:<postmaster@localhost1>: 550 Don't like postmaster
LOG: MAIN REJECT
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL:250:RCPT:250:QUIT:250'
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
LOG: smtp_connection MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL:250:RCPT:250:QUIT:250'
LOG: MAIN REJECT
H=(me) [V4NET.0.0.3] U=root F=<ok@localhost1> rejected RCPT <z@remote.domain>: relay not permitted
LOG: smtp_connection MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL:250:RCPT:250:QUIT:250'
LOG: MAIN REJECT
H=(me) [V4NET.0.0.3] U=root F=<ok@localhost1> rejected RCPT <z@remote.domain>: relay not permitted
LOG: smtp_connection MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL:250:RCPT:550:RSET:250:MAIL:250:RCPT:250:QUIT:250'
LOG: MAIN REJECT
H=(me) [V4NET.0.0.7] U=root F=<ok@localhost1> rejected RCPT <z@remote.domain>: relay not permitted
LOG: smtp_connection MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:LHLO:250:MAIL:250:RCPT:550:QUIT:250'
LOG: MAIN REJECT
H=(test) [V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.lmtp>: 127.0.0.1 [127.0.0.1] : SMTP error from remote mail server after RCPT TO:<z@remote.lmtp>: 550 Recipient not liked
LOG: smtp_connection MAIN
Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
SMTP(closed)<<
SMTP(close)>>
+cmdlog: '(unset)'
LOG: MAIN REJECT
H=(test) [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
SMTP(shutdown)>>
SMTP<< 200 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:500:QUIT:200'
LOG: MAIN
** userx@test.ex R=r1 T=t1 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined DATA: 500 NO
LOG: MAIN
SMTP(shutdown)>>
SMTP<< 200 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL:250:RCPT:250:DATA:500:QUIT:200'
LOG: MAIN
** usery@test.ex R=r1 T=t1 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after DATA: 500 NO
LOG: MAIN
Deferred addresses:
locking TESTSUITE/spool/db/retry.lockfile
locking TESTSUITE/spool/db/wait-t1.lockfile
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:250'
LOG: MAIN
=> ok@no.delay R=r1 T=t1 H=127.0.0.1 [127.0.0.1] C="250 OK"
LOG: MAIN
delay@test.again.dns
locking TESTSUITE/spool/db/retry.lockfile
locking TESTSUITE/spool/db/wait-t1.lockfile
+cmdlog: 'MAIL|:RCPT|:DATA:250:250:354:.:250:QUIT:250'
LOG: MAIN
=> ok@no.delay R=r1 T=t1 H=127.0.0.1 [127.0.0.1]* C="250 OK"
>>>>>>>>>>>>>>>> Exim pid=pppp (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>>
Deferred addresses:
locking TESTSUITE/spool/db/retry.lockfile
locking TESTSUITE/spool/db/wait-t1.lockfile
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:250'
LOG: MAIN
=> ok@no.delay R=r1 T=t1 H=127.0.0.1 [127.0.0.1] C="250 OK"
LOG: MAIN
delay@test.again.dns
locking TESTSUITE/spool/db/retry.lockfile
locking TESTSUITE/spool/db/wait-t1.lockfile
+cmdlog: 'MAIL|:RCPT|:DATA:250:250:354:.:250:QUIT:250'
LOG: MAIN
=> ok@no.delay R=r1 T=t1 H=127.0.0.1 [127.0.0.1]* C="250 OK"
>>>>>>>>>>>>>>>> Exim pid=pppp (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>>
locking TESTSUITE/spool/db/retry.lockfile
no retry data available
added retry item for R:userx@test.ex:<CALLER@test.ex>: errno=-44 more_errno=dd,A flags=0
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:QUIT:250'
reading retry information for R:userx@test.ex:<CALLER@test.ex> from subprocess
added retry item
LOG: MAIN
no host retry record
no message retry record
added retry item for R:userx@test.ex:<CALLER@test.ex>: errno=-44 more_errno=dd,A flags=0
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:QUIT:250'
reading retry information for R:userx@test.ex:<CALLER@test.ex> from subprocess
existing delete item dropped
added retry item
no host retry record
no message retry record
added retry item for R:userx@test.ex:<CALLER@test.ex>: errno=-44 more_errno=dd,A flags=0
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:QUIT:250'
reading retry information for R:userx@test.ex:<CALLER@test.ex> from subprocess
existing delete item dropped
added retry item
no retry data available
added retry item for R:userx@test.ex:<CALLER@test.ex>: errno=-44 more_errno=dd,A flags=0
added retry item for R:usery@test.ex:<CALLER@test.ex>: errno=-44 more_errno=dd,A flags=0
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:RCPT:451:QUIT:250'
reading retry information for R:userx@test.ex:<CALLER@test.ex> from subprocess
added retry item
reading retry information for R:usery@test.ex:<CALLER@test.ex> from subprocess
no message retry record
added retry item for R:userx@test.ex:<CALLER@test.ex>: errno=-44 more_errno=dd,A flags=0
added retry item for R:usery@test.ex:<CALLER@test.ex>: errno=-44 more_errno=dd,A flags=0
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:RCPT:451:QUIT:250'
reading retry information for R:userx@test.ex:<CALLER@test.ex> from subprocess
existing delete item dropped
added retry item
== c1@myhost.test.ex R=ut3 T=ut3 defer (0): Child process of ut3 transport returned 127 (could mean unable to exec or command does not exist) from command: /non/existent/file
locking TESTSUITE/spool/db/retry.lockfile
locking TESTSUITE/spool/db/wait-ut4.lockfile
+cmdlog: '220'
LOG: MAIN
=> d1@myhost.test.ex R=ut4 T=ut4 H=127.0.0.1 [127.0.0.1] C="250 OK"
locking TESTSUITE/spool/db/retry.lockfile
+cmdlog: '220'
LOG: MAIN
== d2@myhost.test.ex R=ut4 T=ut4 defer (-44) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<d2@myhost.test.ex>: 450 soft error
locking TESTSUITE/spool/db/retry.lockfile
locking TESTSUITE/spool/db/wait-ut4.lockfile
+cmdlog: '220'
LOG: MAIN
** d3@myhost.test.ex R=ut4 T=ut4 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<d3@myhost.test.ex>: 550 hard error
locking TESTSUITE/spool/db/retry.lockfile
log writing disabled
locking TESTSUITE/spool/db/retry.lockfile
locking TESTSUITE/spool/db/wait-ut4.lockfile
+cmdlog: '220'
LOG: MAIN
=> d1@myhost.test.ex P=<> R=ut4 T=ut4 H=127.0.0.1 [127.0.0.1] C="250 OK"
log writing disabled
locking TESTSUITE/spool/db/retry.lockfile
+cmdlog: '220'
LOG: MAIN
== d2@myhost.test.ex R=ut4 T=ut4 defer (-44) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<d2@myhost.test.ex>: 450 soft error
log writing disabled
locking TESTSUITE/spool/db/retry.lockfile
locking TESTSUITE/spool/db/wait-ut4.lockfile
+cmdlog: '220'
LOG: MAIN
** d3@myhost.test.ex P=<> R=ut4 T=ut4 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<d3@myhost.test.ex>: 550 hard error
log writing disabled
locking TESTSUITE/spool/db/retry.lockfile
locking TESTSUITE/spool/db/wait-ut5.lockfile
+cmdlog: '220'
LOG: MAIN
** e1@myhost.test.ex P=<> R=ut5 T=ut5 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<e1@myhost.test.ex>: 550 hard error
log writing disabled
locking TESTSUITE/spool/db/retry.lockfile
locking TESTSUITE/spool/db/wait-ut6.lockfile
+cmdlog: '220'
LOG: MAIN
=> f1@myhost.test.ex P=<CALLER@myhost.test.ex> R=ut6 T=ut6 H=127.0.0.1 [127.0.0.1] C="250 OK"
log writing disabled
locking TESTSUITE/spool/db/retry.lockfile
+cmdlog: '220'
LOG: MAIN
== f2@myhost.test.ex R=ut6 T=ut6 defer (-44) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<f2@myhost.test.ex>: 450 soft error
log writing disabled
locking TESTSUITE/spool/db/retry.lockfile
locking TESTSUITE/spool/db/wait-ut6.lockfile
+cmdlog: '220'
LOG: MAIN
** f3@myhost.test.ex P=<CALLER@myhost.test.ex> R=ut6 T=ut6 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<f3@myhost.test.ex>: 550 hard error
log writing disabled
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for localhost:
result=1 postmaster=0 random=0
wrote positive callout cache address record for ok@localhost
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:QUIT:250'
wrote callout cache domain record for localhost:
result=1 postmaster=0 random=0
wrote negative callout cache address record for bad@localhost
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:550:QUIT:250'
wrote callout cache domain record for localhost:
result=3 postmaster=0 random=0
LOG: MAIN REJECT
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:RSET:250:MAIL:250:RCPT:550:QUIT:250'
wrote callout cache domain record for otherhost:
result=1 postmaster=2 random=0
wrote positive callout cache address record for ok@otherhost
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:RSET:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost2:
result=1 postmaster=1 random=0
wrote positive callout cache address record for ok@otherhost2
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost3:
result=1 postmaster=0 random=1
LOG: MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost4:
result=1 postmaster=0 random=1
LOG: MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:RSET:250:MAIL:250:RCPT:250:RSET:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost41:
result=1 postmaster=1 random=2
wrote positive callout cache address record for ok@otherhost41
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:RSET:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost21:
result=1 postmaster=1 random=0
wrote positive callout cache address record for ok@otherhost21
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost21:
result=1 postmaster=1 random=0
wrote positive callout cache address record for ok2@otherhost21
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:RSET:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost31:
result=1 postmaster=0 random=2
wrote positive callout cache address record for ok@otherhost31
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost31:
result=1 postmaster=0 random=2
wrote positive callout cache address record for okok@otherhost31
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:RSET:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost31:
result=1 postmaster=0 random=2
wrote positive callout cache address record for okokok@otherhost31
SMTP(Connection timed out)<<
SMTP timeout
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT'
wrote callout cache domain record for otherhost51:
result=1 postmaster=0 random=0
LOG: MAIN REJECT
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:RSET:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost52:
result=1 postmaster=1 random=0
wrote positive callout cache address record for okokok@otherhost52
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for x.y.z:
result=1 postmaster=0 random=0
wrote positive callout cache address record for abcd@x.y.z/<somesender@a.domain>
SMTP(Connection timed out)<<
SMTP timeout
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT'
wrote callout cache domain record for x.y.z:
result=1 postmaster=0 random=0
LOG: MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:RSET:250:MAIL:250:RCPT:550:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost9:
result=1 postmaster=1 random=0
wrote positive callout cache address record for ok@otherhost9
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:RSET:250:MAIL:250:RCPT:250:RSET:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for test.ex:
result=1 postmaster=1 random=2
wrote positive callout cache address record for z@test.ex/<postmaster@myhost.test.ex>
SMTP(shutdown)>>
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:QUIT:250'
set_process_info: pppp delivering 10HmaX-0005vi-00: just tried 127.0.0.1 [127.0.0.1]:PORT_S for x@y: result OK
address match test: subject=*@127.0.0.1 pattern=*
127.0.0.1 in "*"? yes (matched "*")
cmd buf flush ddd bytes
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:QUIT:250'
locking TESTSUITE/spool/db/callout.lockfile
locked TESTSUITE/spool/db/callout.lockfile
EXIM_DBOPEN: file <TESTSUITE/spool/db/callout> dir <TESTSUITE/spool/db> flags=O_RDWR|O_CREAT
Deferred addresses:
locking TESTSUITE/spool/db/retry.lockfile
locking TESTSUITE/spool/db/wait-t1.lockfile
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:QUIT:250'
LOG: MAIN
** x@uppercase.test.ex R=r1 T=t1 H=uppercase.test.ex [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<x@UpperCase.test.ex>: 550 Unknown
Exim version x.yz ....
cmd buf flush ddd bytes
SMTP<< 220 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:QUIT:220'
locking TESTSUITE/spool/db/callout.lockfile
locked TESTSUITE/spool/db/callout.lockfile
EXIM_DBOPEN: file <TESTSUITE/spool/db/callout> dir <TESTSUITE/spool/db> flags=O_RDWR|O_CREAT
>>> cmd buf flush 6 bytes
>>> SMTP<< 220 OK
>>> SMTP(close)>>
+>>> cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:QUIT:220'
>>> wrote callout cache domain record for b:
>>> result=1 postmaster=0 random=0
>>> wrote positive callout cache address record for a@b
>>> SMTP>> EHLO myhost.test.ex
>>> cmd buf flush 21 bytes
>>> SMTP(close)>>
+>>> cmdlog: '220:EHLO'
>>> SMTP timeout
>>> ----------- end verify ------------
>>> accept: condition test deferred in ACL "mail"
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:RSET:250:MAIL:250:RCPT:550:QUIT:250'
wrote callout cache domain record for localhost:
result=1 postmaster=2 random=0
wrote positive callout cache address record for Ok@localhost
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:QUIT:250'
wrote callout cache domain record for elsewhere:
result=1 postmaster=0 random=0
wrote negative callout cache address record for NOTok@elsewhere
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:QUIT:250'
wrote callout cache domain record for elsewhere:
result=1 postmaster=0 random=0
wrote negative callout cache address record for NOTok2@elsewhere
SMTP>> DATA
SMTP<< 354 OK
SMTP>> writing message and terminating "."
+ SMTP>> .
SMTP<< 250 OK
SMTP+> QUIT
SMTP(shutdown)>>
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL:250:RCPT:250:DATA:354:.:250:QUIT:250'
LOG: MAIN
=> x@srv27.test.ex R=r1 T=t1 H=localhost.test.ex [127.0.0.1]:1224 C="250 OK"
LOG: MAIN
SMTP(Connection timed out)<<
SMTP timeout
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT'
wrote callout cache domain record for two.test.ex:
result=1 postmaster=0 random=0
LOG: MAIN REJECT
Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
SMTP(Connection timed out)<<
SMTP(close)>>
+cmdlog: '(unset)'
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: 127.0.0.1 [127.0.0.1] : SMTP timeout after initial connection
SMTP(closed)<<
H=127.0.0.1 [127.0.0.1] Remote host closed connection in response to RSET
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:550:RSET'
set_process_info: pppp delivering 10HmaX-0005vi-00: just tried 127.0.0.1 [127.0.0.1]:PORT_S for userx@test.ex: result OK
Leaving t1 transport
set_process_info: pppp delivering 10HmaX-0005vi-00 (just run t1 for userx@test.ex in subprocess)
SMTP<< 354 SEND
SMTP>> writing message and terminating "."
SMTP(close)>>
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:DATA:354'
LOG: MAIN
H=127.0.0.1 [127.0.0.1]: SMTP timeout after sending data block (ddd bytes written): Connection timed out
LOG: MAIN
Deferred addresses:
locking TESTSUITE/spool/db/retry.lockfile
locking TESTSUITE/spool/db/wait-smtp.lockfile
+cmdlog: '220:EHLO:250-:MAIL:250:RCPT:250:DATA:354:.:250:QUIT:250'
LOG: MAIN
=> userx@domain1 R=smarthost T=smtp H=thisloop.test.ex [127.0.0.1] C="250 OK"
LOG: MAIN
locking TESTSUITE/spool/db/retry.lockfile
no retry data available
added retry item for R:x@y:<CALLER@myhost.test.ex>: errno=-44 more_errno=dd,A flags=0
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:QUIT:250'
reading retry information for R:x@y:<CALLER@myhost.test.ex> from subprocess
added retry item
LOG: MAIN
added retry item for R:x@y:<CALLER@myhost.test.ex>: errno=dd more_errno=dd,A flags=1
added retry item for R:x@y: errno=dd more_errno=dd,A flags=1
locking TESTSUITE/spool/db/wait-smtp.lockfile
+cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:DATA:354:.:250:QUIT:250'
reading retry information for R:x@y from subprocess
existing delete item dropped
added delete item
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for localhost:
result=1 postmaster=0 random=0
wrote positive callout cache address record for ok@localhost
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:550:QUIT:250'
wrote callout cache domain record for localhost:
result=1 postmaster=0 random=0
wrote negative callout cache address record for bad@localhost
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:550:530:QUIT:250'
wrote callout cache domain record for localhost:
result=3 postmaster=0 random=0
LOG: MAIN REJECT
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:RSET:250:MAIL|:RCPT:250:550:QUIT:250'
wrote callout cache domain record for otherhost:
result=1 postmaster=2 random=0
wrote positive callout cache address record for ok@otherhost
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:RSET:250:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost2:
result=1 postmaster=1 random=0
wrote positive callout cache address record for ok@otherhost2
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost3:
result=1 postmaster=0 random=1
LOG: MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost4:
result=1 postmaster=0 random=1
LOG: MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:550:RSET:250:MAIL|:RCPT:250:250:RSET:250:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost41:
result=1 postmaster=1 random=2
wrote positive callout cache address record for ok@otherhost41
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:RSET:250:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost21:
result=1 postmaster=1 random=0
wrote positive callout cache address record for ok@otherhost21
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost21:
result=1 postmaster=1 random=0
wrote positive callout cache address record for ok2@otherhost21
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:550:RSET:250:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost31:
result=1 postmaster=0 random=2
wrote positive callout cache address record for ok@otherhost31
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost31:
result=1 postmaster=0 random=2
wrote positive callout cache address record for okok@otherhost31
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:550:RSET:250:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost31:
result=1 postmaster=0 random=2
wrote positive callout cache address record for okokok@otherhost31
SMTP(Connection timed out)<<
SMTP timeout
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250'
wrote callout cache domain record for otherhost51:
result=1 postmaster=0 random=0
LOG: MAIN REJECT
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:RSET:250:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost52:
result=1 postmaster=1 random=0
wrote positive callout cache address record for okokok@otherhost52
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for x.y.z:
result=1 postmaster=0 random=0
wrote positive callout cache address record for abcd@x.y.z/<somesender@a.domain>
SMTP(Connection timed out)<<
SMTP timeout
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250'
wrote callout cache domain record for x.y.z:
result=1 postmaster=0 random=0
LOG: MAIN
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:RSET:250:MAIL|:RCPT:250:550:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost9:
result=1 postmaster=1 random=0
wrote positive callout cache address record for ok@otherhost9
SMTP>> QUIT
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:550:RSET:250:MAIL|:RCPT:250:250:RSET:250:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for test.ex:
result=1 postmaster=1 random=2
wrote positive callout cache address record for z@test.ex/<postmaster@myhost.test.ex>
transport_check_waiting: FALSE
will pipeline QUIT
cannot use sendfile for body: spoolfile not wireformat
+ SMTP>> .
writing data block fd=dddd size=sss timeout=300 (more expected)
SMTP+> QUIT
cmd buf flush ddd bytes (more expected)
ok=0 send_quit=0 send_rset=1 continue_more=0 yield=0 first_address is NULL
SMTP<< 221 Closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:300:.:QUIT:451:221'
added retry item for T:127.0.0.1:127.0.0.1:1225:10HmaZ-0005vi-00: errno=-46 more_errno=dd,A flags=6
all IP addresses skipped or deferred at least one address
Leaving send_to_server transport
transport_check_waiting: FALSE
will pipeline QUIT
cannot use sendfile for body: spoolfile not wireformat
+ SMTP>> .
writing data block fd=dddd size=sss timeout=300 (more expected)
SMTP+> QUIT
cmd buf flush ddd bytes (more expected)
ok=0 send_quit=0 send_rset=1 continue_more=0 yield=0 first_address is NULL
SMTP<< 221 Closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:300:.:QUIT:550:221'
Leaving send_to_server transport
LOG: MAIN
** permreject@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after end of data: 550 content rejected
transport_check_waiting: FALSE
will pipeline QUIT
cannot use sendfile for body: spoolfile not wireformat
+ SMTP>> .
writing data block fd=dddd size=sss timeout=300 (more expected)
SMTP+> QUIT
cmd buf flush ddd bytes (more expected)
ok=0 send_quit=0 send_rset=1 continue_more=0 yield=0 first_address is NULL
SMTP(closed)<<
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:300:.:QUIT'
added retry item for T:127.0.0.1:127.0.0.1:1225:10HmbB-0005vi-00: errno=-18 more_errno=dd,A flags=6
all IP addresses skipped or deferred at least one address
Leaving send_to_server transport
ok=1 send_quit=0 send_rset=0 continue_more=0 yield=0 first_address is NULL
SMTP<< 221 Closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:BDAT:QUIT:250:250:250:221'
Leaving send_to_server transport
LOG: MAIN
=> good@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1] L K C="250 OK chunked message data"
SMTP(shutdown)>>
SMTP<< 221 Closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL:250:RCPT:250:BDAT:250:QUIT:221'
Leaving send_to_server transport
LOG: MAIN
=> nopipe@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1] K C="250 OK chunked message data"
ok=0 send_quit=0 send_rset=1 continue_more=0 yield=0 first_address is NULL
SMTP<< 221 Closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:BDAT:QUIT:250:250:451:221'
added retry item for T:127.0.0.1:127.0.0.1:1225:10HmaZ-0005vi-00: errno=-46 more_errno=dd,A flags=6
all IP addresses skipped or deferred at least one address
Leaving send_to_server transport
ok=0 send_quit=0 send_rset=1 continue_more=0 yield=0 first_address is NULL
SMTP<< 221 Closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:BDAT:QUIT:250:250:550:221'
Leaving send_to_server transport
LOG: MAIN
** permreject@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined end of data: 550 content rejected
ok=0 send_quit=0 send_rset=1 continue_more=0 yield=0 first_address is NULL
SMTP(closed)<<
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:BDAT:QUIT:250:250'
added retry item for T:127.0.0.1:127.0.0.1:1225:10HmbB-0005vi-00: errno=-18 more_errno=dd,A flags=6
all IP addresses skipped or deferred at least one address
Leaving send_to_server transport
SMTP<< 250 Accepted
SMTP<< 354 Enter message, ending with "." on a line by itself
SMTP>> writing message and terminating "."
+ SMTP>> .
SMTP>> QUIT
SMTP<< 250 OK id=10HmaZ-0005vi-00
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:STARTTLS:220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:QUIT:250:221'
LOG: MAIN
=> CALLER@test.ex R=client T=send_to_server1 H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmaZ-0005vi-00"
LOG: MAIN
SMTP<< 250 Accepted
SMTP<< 354 Enter message, ending with "." on a line by itself
SMTP>> writing message and terminating "."
+ SMTP>> .
SMTP>> QUIT
SMTP<< 250 OK id=10HmbA-0005vi-00
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:STARTTLS:220:EHLO:250-:MAIL|:RCPT|:RCPT|:DATA:250:250:250:354:.:QUIT:250:221'
LOG: MAIN
=> CALLER@test.ex R=client T=send_to_server1 H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbA-0005vi-00"
LOG: MAIN
SMTP<< 250 Accepted
SMTP<< 354 Enter message, ending with "." on a line by itself
SMTP>> writing message and terminating "."
+ SMTP>> .
SMTP>> QUIT
SMTP<< 250 OK id=10HmbB-0005vi-00
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:STARTTLS:220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:QUIT:250:221'
LOG: MAIN
=> abcd@test.ex R=client T=send_to_server2 H=ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbB-0005vi-00"
LOG: MAIN
SMTP<< 250 OK
SMTP<< 250 Accepted
SMTP<< 354 Enter message, ending with "." on a line by itself
+ SMTP>> .
SMTP<< 250 OK id=10HmbA-0005vi-00
LOG: MAIN
=> userx@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbA-0005vi-00"
SMTP<< 250 OK
SMTP<< 250 Accepted
SMTP<< 354 Enter message, ending with "." on a line by itself
+ SMTP>> .
SMTP<< 250 OK id=10HmbB-0005vi-00
SMTP(close)>>
+cmdlog: 'MAIL|:RCPT|:DATA:250:250:354:.:250'
LOG: MAIN
=> userz@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no C="250 OK id=10HmbB-0005vi-00"
LOG: MAIN
SMTP<< 250 OK
SMTP<< 250 Accepted
SMTP<< 354 Enter message, ending with "." on a line by itself
+ SMTP>> .
SMTP+> QUIT
cmd buf flush ddd bytes (more expected)
SMTP(shutdown)>>
SMTP<< 250 OK id=10HmbC-0005vi-00
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: 'MAIL|:RCPT|:DATA:250:250:354:.:QUIT:250:221'
LOG: MAIN
=> usery@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no C="250 OK id=10HmbC-0005vi-00"
LOG: MAIN
SMTP<< 250 OK
SMTP<< 250 Accepted
SMTP<< 354 Enter message, ending with "." on a line by itself
+ SMTP>> .
SMTP<< 250 OK id=10HmbG-0005vi-00
LOG: MAIN
=> usera@test.ex R=cl_override T=send_to_server H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbG-0005vi-00"
SMTP<< 250 OK
SMTP<< 250 Accepted
SMTP<< 354 Enter message, ending with "." on a line by itself
+ SMTP>> .
SMTP<< 250 OK id=10HmbH-0005vi-00
SMTP(close)>>
+cmdlog: 'MAIL|:RCPT|:DATA:250:250:354:.:250'
LOG: MAIN
=> userc@test.ex R=cl_override T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no C="250 OK id=10HmbH-0005vi-00"
LOG: MAIN
SMTP<< 250 OK
SMTP<< 250 Accepted
SMTP<< 354 Enter message, ending with "." on a line by itself
+ SMTP>> .
SMTP+> QUIT
cmd buf flush ddd bytes (more expected)
SMTP(shutdown)>>
SMTP<< 250 OK id=10HmbI-0005vi-00
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: 'MAIL|:RCPT|:DATA:250:250:354:.:QUIT:250:221'
LOG: MAIN
=> userb@test.ex R=cl_override T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no C="250 OK id=10HmbI-0005vi-00"
LOG: MAIN
SMTP<< 250 OK
SMTP<< 250 Accepted
SMTP<< 354 Enter message, ending with "." on a line by itself
+ SMTP>> .
SMTP<< 250 OK id=10HmbM-0005vi-00
SMTP>> EHLO myhost.test.ex
cmd buf flush ddd bytes
250-STARTTLS
250 HELP
SMTP(close)>>
+cmdlog: '220:EHLO:250-:STARTTLS:220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:250:EHLO:250-'
LOG: MAIN
=> user_p@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbM-0005vi-00"
LOG: MAIN
SMTP<< 250 OK
SMTP<< 250 Accepted
SMTP<< 354 Enter message, ending with "." on a line by itself
+ SMTP>> .
SMTP<< 250 OK id=10HmbN-0005vi-00
SMTP>> EHLO myhost.test.ex
cmd buf flush ddd bytes
250-STARTTLS
250 HELP
SMTP(close)>>
+cmdlog: 'STARTTLS:220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:250:EHLO:250-'
LOG: MAIN
=> user_r@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbN-0005vi-00"
LOG: MAIN
SMTP<< 250 OK
SMTP<< 250 Accepted
SMTP<< 354 Enter message, ending with "." on a line by itself
+ SMTP>> .
SMTP>> QUIT
cmd buf flush ddd bytes
SMTP<< 250 OK id=10HmbO-0005vi-00
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: 'STARTTLS:220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:QUIT:250:221'
LOG: MAIN
=> user_q@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbO-0005vi-00"
LOG: MAIN
SMTP<< 250 Accepted
SMTP<< 354 Enter message, ending with "." on a line by itself
SMTP>> writing message and terminating "."
+ SMTP>> .
SMTP>> QUIT
SMTP<< 250 OK id=10HmaZ-0005vi-00
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:QUIT:250:221'
LOG: MAIN
=> CALLER@test.ex R=client T=send_to_server1 H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmaZ-0005vi-00"
LOG: MAIN
SMTP<< 250 Accepted
SMTP<< 354 Enter message, ending with "." on a line by itself
SMTP>> writing message and terminating "."
+ SMTP>> .
SMTP>> QUIT
SMTP<< 250 OK id=10HmbA-0005vi-00
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:RCPT|:DATA:250:250:250:354:.:QUIT:250:221'
LOG: MAIN
=> CALLER@test.ex R=client T=send_to_server1 H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbA-0005vi-00"
LOG: MAIN
SMTP<< 250 Accepted
SMTP<< 354 Enter message, ending with "." on a line by itself
SMTP>> writing message and terminating "."
+ SMTP>> .
SMTP>> QUIT
SMTP<< 250 OK id=10HmbB-0005vi-00
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:QUIT:250:221'
LOG: MAIN
=> abcd@test.ex R=client T=send_to_server2 H=ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbB-0005vi-00"
LOG: MAIN
SMTP<< 354 Enter message, ending with "." on a line by itself
SMTP>> writing message and terminating "."
cannot use sendfile for body: spoolfile not wireformat
+ SMTP>> .
writing data block fd=dddd size=sss timeout=300
SMTP<< 250 OK id=10HmaY-0005vi-00
ok=1 send_quit=1 send_rset=0 continue_more=0 yield=0 first_address is NULL
SMTP(TLS shutdown)>>
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: 'DATA:354:.:250:QUIT:221'
Leaving t1 transport
LOG: MAIN
=> userb@test.ex R=client T=t1 H=127.0.0.1 [127.0.0.1]:1225 X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no C="250 OK id=10HmaY-0005vi-00"
SMTP<< 354 Enter message, ending with "." on a line by itself
SMTP>> writing message and terminating "."
cannot use sendfile for body: spoolfile not wireformat
+ SMTP>> .
writing data block fd=dddd size=sss timeout=300
SMTP<< 250 OK id=10HmaY-0005vi-00
ok=1 send_quit=1 send_rset=0 continue_more=0 yield=0 first_address is NULL
SMTP(TLS shutdown)>>
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: 'DATA:354:.:250:QUIT:221'
Leaving t1 transport
LOG: MAIN
=> userb@test.ex R=client T=t1 H=127.0.0.1 [127.0.0.1]:1225 X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no C="250 OK id=10HmaY-0005vi-00"
SMTP>> DATA
SMTP<< 354 Send data
SMTP>> writing message and terminating "."
+ SMTP>> .
SMTP<< 250 OK
SMTP+> QUIT
SMTP(shutdown)>>
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:AUTH:235:MAIL:250:RCPT:250:DATA:354:.:250:QUIT:250'
LOG: MAIN
=> userx@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] A=plain C="250 OK"
LOG: MAIN
SMTP>> DATA
SMTP<< 354 Send data
SMTP>> writing message and terminating "."
+ SMTP>> .
SMTP<< 250 OK
SMTP+> QUIT
SMTP(shutdown)>>
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:AUTH:235:MAIL:250:RCPT:250:DATA:354:.:250:QUIT:250'
LOG: MAIN
=> userx@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] A=plain C="250 OK"
LOG: MAIN
SMTP>> DATA
SMTP<< 354 Send data
SMTP>> writing message and terminating "."
+ SMTP>> .
SMTP<< 250 OK
SMTP+> QUIT
SMTP(shutdown)>>
SMTP<< 250 OK
SMTP(close)>>
+cmdlog: '220:EHLO:250-:AUTH:300:********:300:********:235:MAIL:250:RCPT:250:DATA:354:.:250:QUIT:250'
LOG: MAIN
=> userx@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] A=login C="250 OK"
LOG: MAIN
DKIM >> Signed DKIM-Signature header, canonicalized (relaxed) >>>>>>>
dkim-signature:v=1;{SP}a=rsa-sha256;{SP}q=dns/txt;{SP}c=relaxed/relaxed;{SP}d=test.ex;{SP}s=sel_bad;{SP}h=From;{SP}bh=/Ab0giHZitYQbDhFszoqQRUkgqueaX9zatJttIU/plc=;{SP}b=;
DKIM [test.ex] Header sha256 computed: 241e16230df5723d899cfae9474c6b376a2ab1f81d1094e358f50ffd0e0067b3
+ SMTP>> .
SMTP+> QUIT
cmd buf flush ddd bytes (more expected)
SMTP(shutdown)>>
SMTP<< 250 OK id=10HmbL-0005vi-00
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:QUIT:250:221'
LOG: MAIN
=> d@test.ex R=client T=send_to_server H=ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4] C="250 OK id=10HmbL-0005vi-00"
LOG: MAIN
DKIM >> Signed DKIM-Signature header, canonicalized (relaxed) >>>>>>>
dkim-signature:v=1;{SP}a=rsa-sha256;{SP}q=dns/txt;{SP}c=relaxed/relaxed;{SP}d=test.ex;{SP}s=sel_bad;{SP}h=From;{SP}bh=/Ab0giHZitYQbDhFszoqQRUkgqueaX9zatJttIU/plc=;{SP}b=;
DKIM [test.ex] Header sha256 computed: 241e16230df5723d899cfae9474c6b376a2ab1f81d1094e358f50ffd0e0067b3
+ SMTP>> .
SMTP>> QUIT
cmd buf flush ddd bytes
SMTP<< 250 OK id=10HmbL-0005vi-00
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:STARTTLS:220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:QUIT:250:221'
LOG: MAIN
=> d@test.ex R=client T=send_to_server H=ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbL-0005vi-00"
LOG: MAIN
>>> SMTP>> QUIT
>>> SMTP<< 220 OK
>>> SMTP(close)>>
+>>> cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:QUIT:220'
>>> ----------- cutthrough shutdown (host-checking mode) ------------
LOG: 10HmaY-0005vi-00 <= sender@myhost.test.ex H=(myhost.test.ex) [1.2.3.4] P=esmtp S=sss for verify@domain.com
SMTP>> QUIT
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:STARTTLS:220:EHLO:250-:MAIL|:RCPT:250:250:DATA:354:250:QUIT:221'
----------- cutthrough shutdown (delivered) ------------
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss
SMTP>> QUIT
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:DATA:354:250:QUIT:221'
----------- cutthrough shutdown (delivered) ------------
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss
SMTP>> QUIT
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:DATA:354:250:QUIT:221'
----------- cutthrough shutdown (delivered) ------------
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss
SMTP>> QUIT
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:STARTTLS:220:EHLO:250-:MAIL|:RCPT:250:250:DATA:354:250:QUIT:221'
----------- cutthrough shutdown (delivered) ------------
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss
SMTP>> QUIT
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:DATA:354:250:QUIT:221'
----------- cutthrough shutdown (delivered) ------------
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss
SMTP>> QUIT
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:DATA:354:250:QUIT:221'
----------- cutthrough shutdown (delivered) ------------
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss
>>> cmd buf flush 6 bytes
>>> SMTP<< 221 myhost.test.ex closing connection
>>> SMTP(close)>>
+>>> cmdlog: '220:EHLO:250-:STARTTLS:220:EHLO:250-:MAIL|:RCPT:250:250:QUIT:221'
>>> wrote callout cache domain record for dane256ee.test.ex:
>>> result=1 postmaster=0 random=0
>>> wrote positive callout cache address record for rcptuser@dane256ee.test.ex
>>> cmd buf flush 6 bytes
>>> SMTP<< 221 myhost.test.ex closing connection
>>> SMTP(close)>>
+>>> cmdlog: '220:EHLO:250-:STARTTLS:220:EHLO:250-:MAIL|:RCPT:250:250:QUIT:221'
>>> wrote callout cache domain record for dane256ee.test.ex:
>>> result=1 postmaster=0 random=0
>>> wrote positive callout cache address record for rcptuser@dane256ee.test.ex