From: Jean-Marc Pigeon (Delson) Date: Sat, 7 Jun 2025 20:41:21 +0000 (-0400) Subject: connect_to_mx start to work X-Git-Tag: tag-0.8~59 X-Git-Url: https://jmp-git.ovh.safe.ca/?a=commitdiff_plain;h=35a72ec8acba2425a44bd515766aa640d07b2d15;p=jmp%2Fmailleur connect_to_mx start to work --- diff --git a/lib/lvleml.c b/lib/lvleml.c index 62e4d18..f8362d8 100644 --- a/lib/lvleml.c +++ b/lib/lvleml.c @@ -25,9 +25,10 @@ #include "lvleml.h" typedef struct { - SOCPTR *socptr; - LOGPTR *logptr; - MXTYP **mxs; + SOCPTR *socptr; //socket to remote pointer + LOGPTR *logptr; //Log pointer + const char *domain; //Domain to be reached + MXTYP **mxs; //MX list form domain }RMTTYP; /* ^L @@ -696,7 +697,33 @@ phase=0; proceed=true; while (proceed==true) { switch (phase) { - case 0 : //do ve have MX + case 0 : //do we have MX + if (rmt->mxs==(MXTYP **)0) { + (void) log_fprintlog(rmt->logptr,false,"NO MX found for domain <%s>", + rmt->domain); + phase=999; + } + break; + case 1 : //Trying to connect + MXTYP **mxs; + const char *srcip; + + mxs=rmt->mxs; + srcip=(const char *)0; + while (*mxs!=(MXTYP *)0) { + rmt->socptr=soc_openfeedsock(pro_smtp,srcip,(*mxs)->mxname,EMLPORT); + if (rmt->socptr!=(SOCPTR *)0) { + char cmt[100]; + + (void) snprintf(cmt,sizeof(cmt),"Now Connected to MX <%s>", + (*mxs)->mxname); + (void) log_fprintlog(rmt->logptr,false,cmt); + break; + } + mxs++; + } + if (rmt->socptr==(SOCPTR *)0) + phase=999; break; default : //SAFE Guard proceed=false; @@ -728,6 +755,7 @@ _Bool proceed; isnow=time((time_t *)0); (void) memset(&rmt,'\000',sizeof(rmt)); rmt.mxs=dns_getmx(domain); +rmt.domain=domain; tosend=(TRATYP **)0; phase=0; proceed=true; diff --git a/lib/unieml.h b/lib/unieml.h index 5a9d702..31890e4 100644 --- a/lib/unieml.h +++ b/lib/unieml.h @@ -32,6 +32,8 @@ #define SENDER "sender" //application email sender #define SORTER "sorter" //application email sorter +#define EMLPORT "25" //Default SMTP email port + //list of keyword typedef enum { //list of SMTP protocol keyword c_data, //DATA email contents transfer request