From 8d2f299657e09beebf339b13f47b820de95a35d8 Mon Sep 17 00:00:00 2001 From: Jean-Marc Pigeon Date: Sun, 21 Sep 2025 18:31:15 -0400 Subject: [PATCH] Starting to implement the note-rcpt procedure --- data-feed/feed000.tst | 4 ++-- data-feed/feed001.tst | 4 ++-- data-feed/feed002.tst | 8 ++++---- data-feed/feed003.tst | 8 ++++---- data-feed/feed004.tst | 2 +- data-feed/feed006.tst | 2 +- data-feed/feed007.tst | 2 +- data-feed/feed008.tst | 2 +- data-feed/feed009.tst | 2 +- data-feed/feed10.tst | 2 +- data-feed/feed11.tst | 4 ++-- data-feed/feed30.tst | 4 ++-- lib/lvleml.c | 22 ++++++++++++---------- 13 files changed, 34 insertions(+), 32 deletions(-) diff --git a/data-feed/feed000.tst b/data-feed/feed000.tst index 5d2714d..817337f 100644 --- a/data-feed/feed000.tst +++ b/data-feed/feed000.tst @@ -34,9 +34,9 @@ R:250 mailleur.example.com, link (cleartext) ready,... S:MAIL FROM: R:250 2.1.3 postmaster@example.com sender ok S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed #------------------------------------------------------------------------- #-sending data C:DATA 354 3.5.0 End data with . diff --git a/data-feed/feed001.tst b/data-feed/feed001.tst index fb7e5e6..503b59e 100644 --- a/data-feed/feed001.tst +++ b/data-feed/feed001.tst @@ -21,9 +21,9 @@ R:250 ENHANCEDSTATUSCODES S:MAIL FROM: SIZE=1024 R:250 2.1.3 postmaster@example.com sender ok S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed #------------------------------------------------------------------------- #-sending data C:DATA 354 3.5.0 End data with . diff --git a/data-feed/feed002.tst b/data-feed/feed002.tst index d3f588c..ebbe7fb 100644 --- a/data-feed/feed002.tst +++ b/data-feed/feed002.tst @@ -7,13 +7,13 @@ R:250 mailleur.example.com, link (cleartext) ready,... S:MAIL FROM: R:250 2.1.3 trouble@mailref1.example.com sender ok S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed #------------------------------------------------------------------------- #-sending data C:DATA 354 3.5.0 End data with . diff --git a/data-feed/feed003.tst b/data-feed/feed003.tst index 23eae13..ed279b9 100644 --- a/data-feed/feed003.tst +++ b/data-feed/feed003.tst @@ -7,9 +7,9 @@ R:250 mailleur.example.com, link (cleartext) ready,... S:MAIL FROM: R:250 2.1.3 trouble@mailref1.example.com sender ok S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed #------------------------------------------------------------------------- #-sending data C:DATA 354 3.5.0 End data with . @@ -35,9 +35,9 @@ R:250 mailleur.example.com, link (cleartext) ready,... S:MAIL FROM: R:250 2.1.3 postmaster@mailref1.example.com sender ok S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed #------------------------------------------------------------------------- #-sending data C:DATA 354 3.5.0 End data with . diff --git a/data-feed/feed004.tst b/data-feed/feed004.tst index 0942767..5ffb43b 100644 --- a/data-feed/feed004.tst +++ b/data-feed/feed004.tst @@ -7,7 +7,7 @@ R:250 mailleur.example.com, link (cleartext) ready,... S:MAIL FROM: R:250 2.1.3 postmaster@example.com sender ok S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed #------------------------------------------------------------------------- #-sending data C:DATA 354 3.5.0 End data with . diff --git a/data-feed/feed006.tst b/data-feed/feed006.tst index 8da7b69..26ea228 100644 --- a/data-feed/feed006.tst +++ b/data-feed/feed006.tst @@ -20,7 +20,7 @@ R:235 5.7.5 Authentication successful S:MAIL FROM: R:250 2.1.3 trouble@mailref1.example.com sender ok S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed #-sending data C:DATA 354 3.5.0 End data with . D:Subject: (feed006) A email to a not existing user after authentication diff --git a/data-feed/feed007.tst b/data-feed/feed007.tst index 9bac48a..9e082e0 100644 --- a/data-feed/feed007.tst +++ b/data-feed/feed007.tst @@ -15,7 +15,7 @@ R:250 ENHANCEDSTATUSCODES S:MAIL FROM: R:250 2.1.3 trouble@mailref1.example.com sender ok S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed #-sending data C:DATA 354 3.5.0 End data with . D:Subject: (feed006) A email to a not existing user after authentication diff --git a/data-feed/feed008.tst b/data-feed/feed008.tst index ed1eb8f..e891b0f 100644 --- a/data-feed/feed008.tst +++ b/data-feed/feed008.tst @@ -15,7 +15,7 @@ R:250 ENHANCEDSTATUSCODES S:MAIL FROM: R:250 2.1.3 supertool@mxtoolboxsmtpdiag.com sender ok S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed S:RCPT TO: R:555 2.7.0 No MX nor IP for for domain S:RCPT TO: diff --git a/data-feed/feed009.tst b/data-feed/feed009.tst index 5e2db7b..24d8b70 100644 --- a/data-feed/feed009.tst +++ b/data-feed/feed009.tst @@ -15,7 +15,7 @@ R:250 ENHANCEDSTATUSCODES S:MAIL FROM: SIZE=2958 R:250 2.1.3 nobody@gmail.com sender ok S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed #------------------------------------------------------------------------- #-sending data C:DATA 354 3.5.0 End data with . diff --git a/data-feed/feed10.tst b/data-feed/feed10.tst index f8e5f58..46f0fed 100644 --- a/data-feed/feed10.tst +++ b/data-feed/feed10.tst @@ -10,7 +10,7 @@ R:250 2.1.3 postmaster@example.com sender ok S:RCPT TO: R:563 5.6.4 No valid MX found for recipient domain name (domain=subdom0.example.com) S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed S:QUIT R:221 2.0.0 Bye, closing connection... #------------------------------------------------------------------------- diff --git a/data-feed/feed11.tst b/data-feed/feed11.tst index 82e49a4..20b8f4c 100644 --- a/data-feed/feed11.tst +++ b/data-feed/feed11.tst @@ -23,9 +23,9 @@ R:250 2.1.3 trouble@mailref1.example.com sender ok S:RCPT TO: R:551 5.6.5 unknown user S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed #------------------------------------------------------------------------- #-sending data C:DATA 354 3.5.0 End data with . diff --git a/data-feed/feed30.tst b/data-feed/feed30.tst index e370b7d..cf853ed 100644 --- a/data-feed/feed30.tst +++ b/data-feed/feed30.tst @@ -9,9 +9,9 @@ R:250 mailleur.example.com, link (cleartext) ready,... S:MAIL FROM: R:250 2.1.3 postmaster@example.com sender ok S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed S:RCPT TO: -R:250 2.6.4 Address accepted +R:250 5.6.6 Address will be processed #------------------------------------------------------------------------- #-sending data C:DATA 354 3.5.0 End data with . diff --git a/lib/lvleml.c b/lib/lvleml.c index e7dec7b..353abc4 100644 --- a/lib/lvleml.c +++ b/lib/lvleml.c @@ -1239,10 +1239,10 @@ return status; /* store status within the database. */ /* */ /************************************************/ -static void bad_rcpt(CONTYP *contact,char *rcpt,int smtpcode,char *fmt,...) +static void note_rcpt(CONTYP *contact,char *rcpt,int smtpcode,char *fmt,...) { -#define OPEP "lvleml.c:bad_rcpt," +#define OPEP "lvleml.c:note_rcpt," va_list args; char **resp; @@ -1263,6 +1263,10 @@ action.reverse=contact->peername; action.sfrom=contact->mailfrom; action.hfrom="----"; action.hsubject="----"; +if (contact->session->hfrom!=(char *)0) + action.hfrom=contact->session->hfrom; +if (contact->session->hsubject!=(char *)0) + action.hsubject=contact->session->hsubject; action.rcptto=rcpt; action.resp=resp; if (sql_mngact(contact->sqlptr,&action)==false) @@ -1765,7 +1769,7 @@ int phase; success=false; neu=(RCPTYP *)0; -detail="Address accepted"; +detail="Address will be processed"; report=(char *)0; proceed=true; phase=0; @@ -1781,15 +1785,13 @@ while (proceed==true) { break; case 1 : //do we have an originator if ((rcptto==(char *)0)||(strlen(rcptto)==0)) { - (void) eml_transmit(contact,true,"%d 5.6.1 recipient not specified", - BADPAR); + (void) note_rcpt(contact,rcptto,BADPAR,"5.6.1 recipient not specified"); phase=999; //no need to go further } break; case 2 : //check rcpt format if ((rcptto[0]!='<')||(rcptto[strlen(rcptto)-1]!='>')) { - (void) eml_transmit(contact,true,"%d 5.6.2 '%s' bad Format error", - BADPAR,rcptto); + (void) note_rcpt(contact,rcptto,BADPAR,"5.6.2 '%s' bad Format error",rcptto); phase=999; //no need to go further } rcptto[strlen(rcptto)-1]='\000'; @@ -1798,14 +1800,14 @@ while (proceed==true) { case 3 : //checking rcptto format neu=eml_isemailok(rcptto,&report); if (neu==(RCPTYP *)0) { - (void) eml_transmit(contact,true,"%d 5.6.3 %s",NOTEML,report); + (void) note_rcpt(contact,rcptto,NOTEML,"5.6.3 %s",report); report=rou_freestr(report); phase=999; //no need to go further } break; case 4 : //Do we have a domain MX if (setlocdom(contact,neu)==false) { - (void) bad_rcpt(contact,rcptto,MISSMX,"5.6.4 %s (domain=%s)", + (void) note_rcpt(contact,rcptto,MISSMX,"5.6.4 %s (domain=%s)", "No valid MX found for recipient " "domain name",neu->domain); phase=999; //no need to go further @@ -1837,7 +1839,7 @@ while (proceed==true) { } break; case 7 : //everything ok - (void) eml_transmit(contact,true,"%d 2.6.4 %s <%s>",CMDOK,detail,rcptto); + (void) note_rcpt(contact,rcptto,CMDOK,"5.6.6 %s <%s>",detail,rcptto); success=true; break; default : //SAFE guard -- 2.47.3