From 353d93c4a2b0f60a4781d5e19ee67f86e712be05 Mon Sep 17 00:00:00 2001 From: "Jean-Marc Pigeon (Delson)" Date: Sat, 14 Jun 2025 06:09:02 -0400 Subject: [PATCH] SMTP command RSET seems to be working --- Makefile | 3 ++- data-feed/feed02.tst | 2 +- data-feed/feed03.tst | 52 ++++++++++++++++++++++++++++++++++++++++++++ lib/lvleml.c | 5 ++++- 4 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 data-feed/feed03.tst diff --git a/Makefile b/Makefile index 6a6d803..481a764 100644 --- a/Makefile +++ b/Makefile @@ -137,11 +137,12 @@ dbgsend : clean debug #-------------------------------------------------------------------- #testing feed +ONEFEED=feed03.tst + FEEDPAR = \ $(TESTIP) \ $(TESTPORT) \ ./$(DATATST)/feed0*.tst -ONEFEED=feed13.tst #to test with an external server extfeed : debug diff --git a/data-feed/feed02.tst b/data-feed/feed02.tst index 013b7f0..fb00424 100644 --- a/data-feed/feed02.tst +++ b/data-feed/feed02.tst @@ -1,4 +1,4 @@ -T:Sending a very Simple Email top 2 domaines +T:(feed02) Sending a very Simple Email to 2 domains R:220 mailleur.example.com, ESMTP (cleartext) emlrcvr... #==================================================== S:HELO example.com diff --git a/data-feed/feed03.tst b/data-feed/feed03.tst new file mode 100644 index 0000000..70bbac1 --- /dev/null +++ b/data-feed/feed03.tst @@ -0,0 +1,52 @@ +T:(feed03) Sending two email within the same session +R:220 mailleur.example.com, ESMTP (cleartext) emlrcvr... +#========================================================================= +S:HELO example.com +R:250 mailleur.example.com, link (cleartext) ready,... +S:MAIL FROM: +R:250 2.1.3 trouble@subdom1.example.com.. sender ok +S:RCPT TO: +R:250 2.6.4 Address accepted +S:RCPT TO: +R:250 2.6.4 Address accepted +#------------------------------------------------------------------------- +#-sending data +C:DATA 354 3.5.0 End data with . +D:Subject: feed03 email first part +D:From: Tester +D:To: A User1 +D:Cc: A User2 +D: +D:This email was transmitted by feed03 first session +C:. +#------------------------------------------------------------------------- +R:250 3.5.3 Message accepted for delivery... +#========================================================================= +#Testing Reset sequence +S:RSET +R:250-2.0.0 Flushed session ... +R:250 2.0.0 Opening new session... +#------------------------------------------------------------------------- +S:HELO example.com +R:250 mailleur.example.com, link (cleartext) ready,... +S:MAIL FROM: +R:250 2.1.3 trouble@subdom1.example.com.. sender ok +S:RCPT TO: +R:250 2.6.4 Address accepted +S:RCPT TO: +R:250 2.6.4 Address accepted +#------------------------------------------------------------------------- +#-sending data +C:DATA 354 3.5.0 End data with . +D:Subject: feed03 email second part +D:From: Tester +D:To: A User1 +D:Cc: A User2 +D: +D:This email was transmitted by feed03 second session +C:. +#------------------------------------------------------------------------- +R:250 3.5.3 Message accepted for delivery... +#========================================================================= +S:QUIT +R:221 2.0.0 Bye, closing connection... diff --git a/lib/lvleml.c b/lib/lvleml.c index a9be9b7..534e1a8 100644 --- a/lib/lvleml.c +++ b/lib/lvleml.c @@ -790,11 +790,14 @@ return success; static _Bool doreset(CONTYP *contact,char *parameter) { -(void) transmit(contact,"%d 2.0.0 Flushed session %s",CMDOK,contact->cursesid); +(void) transmit(contact,"%d-2.0.0 Flushed session %s",CMDOK,contact->cursesid); contact->numreset++; +contact->recipients=(RCPTYP **)rou_freelist((void **)(contact->recipients), + (genfree_t)eml_freerecipient); contact->mailfrom=rou_freestr(contact->mailfrom); contact->cursesid=rou_freestr(contact->cursesid); contact->cursesid=eml_getcursesid(contact->mainsesid,contact->numreset); +(void) transmit(contact,"%d 2.0.0 Opening new session %s",CMDOK,contact->cursesid); return true; } /* -- 2.47.3