]> SAFE projects GIT repository - jmp/mailleur/commitdiff
Starting to implement the note-rcpt procedure
authorJean-Marc Pigeon <jmp@safe.c>
Sun, 21 Sep 2025 22:31:15 +0000 (18:31 -0400)
committerJean-Marc Pigeon <jmp@safe.c>
Sun, 21 Sep 2025 22:31:15 +0000 (18:31 -0400)
13 files changed:
data-feed/feed000.tst
data-feed/feed001.tst
data-feed/feed002.tst
data-feed/feed003.tst
data-feed/feed004.tst
data-feed/feed006.tst
data-feed/feed007.tst
data-feed/feed008.tst
data-feed/feed009.tst
data-feed/feed10.tst
data-feed/feed11.tst
data-feed/feed30.tst
lib/lvleml.c

index 5d2714d4ccf1a8837404b32d75072b85dbdb9458..817337f18bf846037e0df09096c9c31818f02663 100644 (file)
@@ -34,9 +34,9 @@ R:250 mailleur.example.com, link (cleartext) ready,...
 S:MAIL FROM: <postmaster@example.com>
 R:250 2.1.3 postmaster@example.com sender ok
 S:RCPT TO: <webmaster@example.com>
-R:250 2.6.4 Address accepted <webmaster@example.com>
+R:250 5.6.6 Address will be processed <webmaster@example.com>
 S:RCPT TO: <postmaster@example.com>
-R:250 2.6.4 Address accepted <postmaster@example.com>
+R:250 5.6.6 Address will be processed <postmaster@example.com>
 #-------------------------------------------------------------------------
 #-sending data
 C:DATA 354 3.5.0 End data with <CR><LF>.<CR><LF>
index fb7e5e66847b944d913314874232c7fe23ebba6f..503b59ed00ab28565975dc5835945cacc428fe2f 100644 (file)
@@ -21,9 +21,9 @@ R:250 ENHANCEDSTATUSCODES
 S:MAIL FROM: <postmaster@example.com> SIZE=1024
 R:250 2.1.3 postmaster@example.com sender ok
 S:RCPT TO: <user1@mailref1.example.com>
-R:250 2.6.4 Address accepted <user1@mailref1.example.com>
+R:250 5.6.6 Address will be processed <user1@mailref1.example.com>
 S:RCPT TO: <user2@mailref1.example.com>
-R:250 2.6.4 Address accepted <user2@mailref1.example.com>
+R:250 5.6.6 Address will be processed <user2@mailref1.example.com>
 #-------------------------------------------------------------------------
 #-sending data
 C:DATA 354 3.5.0 End data with <CR><LF>.<CR><LF>
index d3f588caf0ffe629926d8cae8cf51c5f5ad0f6e9..ebbe7fb0727973d8761bfdfe441baa735f9bd5aa 100644 (file)
@@ -7,13 +7,13 @@ R:250 mailleur.example.com, link (cleartext) ready,...
 S:MAIL FROM: <trouble@mailref1.example.com>
 R:250 2.1.3 trouble@mailref1.example.com sender ok
 S:RCPT TO: <webmaster@example.com>
-R:250 2.6.4 Address accepted <webmaster@example.com>
+R:250 5.6.6 Address will be processed <webmaster@example.com>
 S:RCPT TO: <user1@mailref1.example.com>
-R:250 2.6.4 Address accepted <user1@mailref1.example.com>
+R:250 5.6.6 Address will be processed <user1@mailref1.example.com>
 S:RCPT TO: <user1@posdb.example.com>
-R:250 2.6.4 Address accepted <user1@posdb.example.com>
+R:250 5.6.6 Address will be processed <user1@posdb.example.com>
 S:RCPT TO: <user1@mardb.example.com>
-R:250 2.6.4 Address accepted <user1@mardb.example.com>
+R:250 5.6.6 Address will be processed <user1@mardb.example.com>
 #-------------------------------------------------------------------------
 #-sending data
 C:DATA 354 3.5.0 End data with <CR><LF>.<CR><LF>
index 23eae1335877d52d1d9ca785c09cd127fe21738c..ed279b93ec31b1bb73b0086797a3761e00ff6705 100644 (file)
@@ -7,9 +7,9 @@ R:250 mailleur.example.com, link (cleartext) ready,...
 S:MAIL FROM: <trouble@mailref1.example.com>
 R:250 2.1.3 trouble@mailref1.example.com sender ok
 S:RCPT TO: <user1@mailref1.example.com>
-R:250 2.6.4 Address accepted <user1@mailref1.example.com>
+R:250 5.6.6 Address will be processed <user1@mailref1.example.com>
 S:RCPT TO: <user2@mailref1.example.com>
-R:250 2.6.4 Address accepted <user2@mailref1.example.com>
+R:250 5.6.6 Address will be processed <user2@mailref1.example.com>
 #-------------------------------------------------------------------------
 #-sending data
 C:DATA 354 3.5.0 End data with <CR><LF>.<CR><LF>
@@ -35,9 +35,9 @@ R:250 mailleur.example.com, link (cleartext) ready,...
 S:MAIL FROM: <postmaster@mailref1.example.com>
 R:250 2.1.3 postmaster@mailref1.example.com sender ok
 S:RCPT TO: <user2@mailref1.example.com>
-R:250 2.6.4 Address accepted <user2@mailref1.example.com>
+R:250 5.6.6 Address will be processed <user2@mailref1.example.com>
 S:RCPT TO: <user1@mailref1.example.com>
-R:250 2.6.4 Address accepted <user1@mailref1.example.com>
+R:250 5.6.6 Address will be processed <user1@mailref1.example.com>
 #-------------------------------------------------------------------------
 #-sending data
 C:DATA 354 3.5.0 End data with <CR><LF>.<CR><LF>
index 0942767f598e28fc1b2b0a91e8116a304a86ce0b..5ffb43b43a568d6ef581f3896de0f2feaf326bab 100644 (file)
@@ -7,7 +7,7 @@ R:250 mailleur.example.com, link (cleartext) ready,...
 S:MAIL FROM: <postmaster@example.com>
 R:250 2.1.3 postmaster@example.com sender ok
 S:RCPT TO: <utf8-áö_üñ@example.com>
-R:250 2.6.4 Address accepted <utf8-áö_üñ@example.com>
+R:250 5.6.6 Address will be processed <utf8-áö_üñ@example.com>
 #-------------------------------------------------------------------------
 #-sending data
 C:DATA 354 3.5.0 End data with <CR><LF>.<CR><LF>
index 8da7b699bc8cc6d21e52d81d4164aeda0729e327..26ea2281e3679cbfb45cb195ef1123c0f2bd6321 100644 (file)
@@ -20,7 +20,7 @@ R:235 5.7.5 Authentication successful
 S:MAIL FROM: <trouble@mailref1.example.com>
 R:250 2.1.3 trouble@mailref1.example.com sender ok
 S:RCPT TO: <user1@posdb.example.com>
-R:250 2.6.4 Address accepted <user1@posdb.example.com>
+R:250 5.6.6 Address will be processed <user1@posdb.example.com>
 #-sending data
 C:DATA 354 3.5.0 End data with <CR><LF>.<CR><LF>
 D:Subject: (feed006) A email to a not existing user after authentication
index 9bac48a8dad9c5ddcf818439d6bd9496813e8828..9e082e08ebe596b3bc8dba61160d27bc84a4b36b 100644 (file)
@@ -15,7 +15,7 @@ R:250 ENHANCEDSTATUSCODES
 S:MAIL FROM: <trouble@mailref1.example.com>
 R:250 2.1.3 trouble@mailref1.example.com sender ok
 S:RCPT TO: <user1@posdb.example.com>
-R:250 2.6.4 Address accepted <user1@posdb.example.com>
+R:250 5.6.6 Address will be processed <user1@posdb.example.com>
 #-sending data
 C:DATA 354 3.5.0 End data with <CR><LF>.<CR><LF>
 D:Subject: (feed006) A email to a not existing user after authentication
index ed1eb8fc98646d1faef21b0934a3f83a8bf5219e..e891b0f501aeafeeb498186df274d6deee15c962 100644 (file)
@@ -15,7 +15,7 @@ R:250 ENHANCEDSTATUSCODES
 S:MAIL FROM:<supertool@mxtoolboxsmtpdiag.com>
 R:250 2.1.3 supertool@mxtoolboxsmtpdiag.com sender ok
 S:RCPT TO: <webmaster@example.com>
-R:250 2.6.4 Address accepted <webmaster@example.com>
+R:250 5.6.6 Address will be processed <webmaster@example.com>
 S:RCPT TO:<test@mxtoolboxsmtpdiag.com>
 R:555 2.7.0 No MX nor IP for for domain <mxtoolboxsmtpdiag.com>
 S:RCPT TO: <user1@posdb.example.com>
index 5e2db7b48af3b32bfa7119901bdda76c36efdb0a..24d8b7074d280b00e27166c4cffb01a34b24184d 100644 (file)
@@ -15,7 +15,7 @@ R:250 ENHANCEDSTATUSCODES
 S:MAIL FROM:<nobody@gmail.com> SIZE=2958
 R:250 2.1.3 nobody@gmail.com sender ok
 S:RCPT TO:<user1@mailleur.example.com>
-R:250 2.6.4 Address accepted <user1@mailleur.example.com>
+R:250 5.6.6 Address will be processed <user1@mailleur.example.com>
 #-------------------------------------------------------------------------
 #-sending data
 C:DATA 354 3.5.0 End data with <CR><LF>.<CR><LF>
index f8e5f58dfba1f315e0e53a0a9b37656464ce7563..46f0fed8bf0156644fe7d3c324fff6179b13f4c6 100644 (file)
@@ -10,7 +10,7 @@ R:250 2.1.3 postmaster@example.com sender ok
 S:RCPT TO: <user1@subdom0.example.com>
 R:563 5.6.4 No valid MX found for recipient domain name (domain=subdom0.example.com)
 S:RCPT TO: <user1@mailref1.example.com>
-R:250 2.6.4 Address accepted <user1@mailref1.example.com>
+R:250 5.6.6 Address will be processed <user1@mailref1.example.com>
 S:QUIT
 R:221 2.0.0 Bye, closing connection...
 #-------------------------------------------------------------------------
index 82e49a4ee7c01c00c5881d8326643020ff8e9381..20b8f4c2cb4405052b4f0ee8cba30c1b81dc84f9 100644 (file)
@@ -23,9 +23,9 @@ R:250 2.1.3 trouble@mailref1.example.com sender ok
 S:RCPT TO: <dom1user3@example.com>
 R:551 5.6.5 <dom1user3@example.com> unknown user
 S:RCPT TO: <dom1user3@mailref1.example.com>
-R:250 2.6.4 Address accepted <dom1user3@mailref1.example.com>
+R:250 5.6.6 Address will be processed <dom1user3@mailref1.example.com>
 S:RCPT TO: <user1@posdb.example.com>
-R:250 2.6.4 Address accepted <user1@posdb.example.com>
+R:250 5.6.6 Address will be processed <user1@posdb.example.com>
 #-------------------------------------------------------------------------
 #-sending data
 C:DATA 354 3.5.0 End data with <CR><LF>.<CR><LF>
index e370b7df4a1784def77a202db1ca1c7e31a22605..cf853edae2ec7e279e9c2842e0efcf1542ee6801 100644 (file)
@@ -9,9 +9,9 @@ R:250 mailleur.example.com, link (cleartext) ready,...
 S:MAIL FROM: <postmaster@example.com>
 R:250 2.1.3 postmaster@example.com sender ok
 S:RCPT TO: <root@example.com>
-R:250 2.6.4 Address accepted <root@example.com>
+R:250 5.6.6 Address will be processed <root@example.com>
 S:RCPT TO: <jmp@example.com>
-R:250 2.6.4 Address accepted <jmp@example.com>
+R:250 5.6.6 Address will be processed <jmp@example.com>
 #-------------------------------------------------------------------------
 #-sending data
 C:DATA 354 3.5.0 End data with <CR><LF>.<CR><LF>
index e7dec7bc975176401d924b7355901b469d48fe05..353abc4b4584699712fd43bfd7bae22ed965db51 100644 (file)
@@ -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