From 19ea8322b591cbf2cae29d420113a97b196953ff Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Wed, 10 Jul 2002 10:12:27 +0000
Subject: [PATCH] Better support for outbound addresses with both "name" and
 <addr> portions.

---
 src/sbbs3/mailsrvr.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c
index 1d8f672b20..340aa8bb7f 100644
--- a/src/sbbs3/mailsrvr.c
+++ b/src/sbbs3/mailsrvr.c
@@ -466,8 +466,8 @@ static ulong sockmsgtxt(SOCKET socket, smbmsg_t* msg, char* msgtxt, char* fromad
 	if(strchr(msg->to,'@')!=NULL || msg->to_net.addr==NULL)
 		sockprintf(socket,"To: %s",msg->to);	/* Avoid double-@ */
 	else if(msg->to_net.type==NET_INTERNET || msg->to_net.type==NET_QWK) {
-		if(*((char*)msg->to_net.addr)=='<')
-			sockprintf(socket,"To: \"%s\" %s",msg->to,(char*)msg->to_net.addr);
+		if(strchr((char*)msg->to_net.addr,'<')!=NULL)
+			sockprintf(socket,"To: %s",(char*)msg->to_net.addr);
 		else
 			sockprintf(socket,"To: \"%s\" <%s>",msg->to,(char*)msg->to_net.addr);
 	} else {
@@ -1969,10 +1969,13 @@ static void smtp_thread(void* arg)
 			p=buf+8;
 			while(*p && *p<=' ') p++;
 			SAFECOPY(str,p);
-			p=str;
+			p=strrchr(str,'<');
+			if(p==NULL)
+				p=str;
+			else
+				p++;
 
-			if(*p=='<') p++;				/* Skip '<' */
-			tp=strchr(str,'>');				/* Truncate '>' */
+			tp=strchr(str,'>');		/* Truncate at '>' */
 			if(tp!=NULL) *tp=0;
 
 			forward=FALSE;
@@ -2649,7 +2652,7 @@ static void sendmail_thread(void* arg)
 				continue;
 			}
 			/* RCPT */
-			if(*((char*)msg.to_net.addr)=='<')
+			if(strchr((char*)msg.to_net.addr,'<')!=NULL)
 				sockprintf(sock,"RCPT TO: %s", (char*)msg.to_net.addr);
 			else
 				sockprintf(sock,"RCPT TO: <%s>", (char*)msg.to_net.addr);
-- 
GitLab