summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/smtppass.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/common/smtppass.c b/common/smtppass.c
index 25d657c..5532927 100644
--- a/common/smtppass.c
+++ b/common/smtppass.c
@@ -98,6 +98,7 @@ spthread_t;
#define SMTP_DATA "DATA" CRLF
#define SMTP_NOOP "NOOP" CRLF
+#define SMTP_RSET "RSET" CRLF
#define SMTP_XCLIENT "XCLIENT ADDR=%s" CRLF
#define SMTP_BANNER "220 smtp.passthru" CRLF
#define SMTP_HELO_RSP "250 smtp.passthru" CRLF
@@ -1711,6 +1712,11 @@ int sp_fail_data(spctx_t* ctx, const char* smtp_status)
if(spio_write_data(ctx, &(ctx->client), smtp_status) == -1)
return -1;
+ /* Tell the server to forget about the current message */
+ if(spio_write_data(ctx, &(ctx->server), SMTP_RSET) == -1 ||
+ read_server_response(ctx) == -1)
+ return -1;
+
return 0;
}