diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c index 4e08ed464efa9f0ca1ef711264e519267593625f..aa7b621f63db66ffb102792429bd11685412b20e 100644 --- a/src/sbbs3/mailsrvr.c +++ b/src/sbbs3/mailsrvr.c @@ -475,7 +475,7 @@ static ulong sockmsgtxt(SOCKET socket, smbmsg_t* msg, char* msgtxt, ulong maxlin if(msg->from_net.type==NET_INTERNET && msg->from_net.addr!=NULL) SAFECOPY(fromaddr,(char*)msg->from_net.addr); else if(msg->from_net.type==NET_QWK && msg->from_net.addr!=NULL) - sprintf(fromaddr,"\"%s@%s\"@%s" + sprintf(fromaddr,"%s!%s@%s" ,msg->from,(char*)msg->from_net.addr,scfg.sys_inetaddr); else usermailaddr(&scfg,fromaddr,msg->from); @@ -2600,7 +2600,9 @@ static void smtp_thread(void* arg) usernum=0; /* unknown user at this point */ - tp=strrchr(p,'@'); /* Double-@? Routed QWKnet mail? */ + tp=strrchr(p,'@'); /* Double-@? Routed QWKnet mail? */ + if(tp==NULL) + tp=strrchr(p,'!'); /* Or user!node@host format */ if(tp!=NULL) { *tp=0; SAFECOPY(rcpt_addr,p);