]> SAFE projects GIT repository - jmp/mailleur/commitdiff
Need to hanlde email recipient sent status
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Mon, 9 Jun 2025 18:40:19 +0000 (14:40 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Mon, 9 Jun 2025 18:40:19 +0000 (14:40 -0400)
data-feed/feed01.tst
lib/lvleml.c

index 1234295cadd05c84613b66d7f74aaf933de77a08..916ed360e72641c7c9d11fdc88d49a167fcb8274 100644 (file)
@@ -13,12 +13,15 @@ S:RCPT TO: <dom1user1@subdom1.example.com>
 R:250 2.6.4 Address accepted
 S:RCPT TO: <dom1user2@subdom1.example.com>
 R:250 2.6.4 Address accepted
+S:RCPT TO: <dom1user3@subdom1.example.com>
+R:250 2.6.4 Address accepted
 #-------------------------------------------------------------------------
 #-sending data
 C:DATA
 D:Subject: Very Simple email contents
 D:From: Maitre Post <postmaster@example.com>
 D:To: Remote person <dom1user1@subdom1.example.com>
+D:CC: Other person <dom1user2@subdom1.example.com>
 C:T
 D:
 D:FIRST Line
@@ -33,6 +36,6 @@ D:end
 D:ligne court|
 C:.
 #-------------------------------------------------------------------------
-R:250 3.5.3 Message accepted for delivery
+R:250 3.5.3 Message accepted for delivery (Session...
 S:QUIT
 R:221 2.0.0 Bye, closing connection...
index 32575d789d25d9e38c3adda176591e3431224b8f..fed0a057559bc3b54c5ffed7dc309e34b4874cf1 100644 (file)
@@ -114,7 +114,7 @@ return done;
 /*     Procedure to transmit a string to the remot peer*/
 /*                                                      */
 /********************************************************/
-static void transmit(CONTYP *contact,char *fmt,...)
+static void transmit(CONTYP *contact,const char *fmt,...)
 
 {
 va_list args;
@@ -345,12 +345,15 @@ static _Bool getdata(CONTYP *contact)
 _Bool done;
 FILE *queue;
 _Bool completed;
+int total;
+TIMESPEC start;
 int phase;
 _Bool proceed;
 
 done=false;
 queue=(FILE *)0;
 completed=false;
+total=0;
 phase=0;
 proceed=setdirectives(contact,"tmp");
 while (proceed==true) {
@@ -360,11 +363,12 @@ while (proceed==true) {
       if ((queue=eml_createqfile(contact->cursesid,""))==(FILE *)0) 
         phase=999;      //trouble trouble
       break;
-    case 1      :       //sending go ahaed to remote
+    case 1      :       //adding received stamp to file
       if (addreceived(contact,queue)==false) 
         phase=999;      //trouble trouble
       break;
-    case 2      :       //sending go ahaed to remote
+    case 2      :       //sending 'go ahead' to remote
+      (void) clock_gettime(CLOCK_REALTIME,&start);
       (void) transmit(contact,"%d 3.5.0 %s",
                               DATAOK,"End data with <CR><LF>.<CR><LF>");
       break;
@@ -379,6 +383,7 @@ while (proceed==true) {
           phase=999;    //trouble trouble
           break;        //exiting loop
           }
+        total+=got;
         if (strcmp(line,".")==0) {
           completed=true;
           }
@@ -399,8 +404,16 @@ while (proceed==true) {
         phase=999;              //Trouble trouble
       break;
     case 6      :       //everything fine
-      (void) transmit(contact,"%d 3.5.3 %s",
-                              CMDOK,"Message accepted for delivery");
+      const char *fmt;
+      unsigned int delta;
+
+      total+=1023;
+      total/=1024;    //KBytes
+      delta=rou_getdifftime(&start);
+      fmt="%d 3.5.3 Message accepted for delivery (Session ID=<%s>)";
+      (void) transmit(contact,fmt,CMDOK,contact->cursesid);
+      fmt="DATA stream received: %d Kbytes within %d.%03d seconds";
+      (void) log_fprintlog(contact->logptr,false,fmt,total,delta/1000,delta%1000);
       done=true;
       proceed=false;    //task done
       break;
@@ -878,7 +891,7 @@ while (proceed==true) {
       
       sent+=1023;
       sent/=1024;       //Sent now in KByes
-      fmt="Data Sent %d Kbytes within %d.%03d seconds";
+      fmt="Data stream Sent: %d Kbytes within %d.%03d seconds";
       delta=rou_getdifftime(&start);
       (void) log_fprintlog(rmt->logptr,false,fmt,sent,delta/1000,delta%1000);
       switch (rspcode) {