diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c index 89ddaeec626cb9821a136b078dcc7e99634f0add..c7054e55b1981d2bc9e40c641c61b68e0ece2e1e 100644 --- a/src/sbbs3/mailsrvr.c +++ b/src/sbbs3/mailsrvr.c @@ -4445,7 +4445,8 @@ static void smtp_thread(void* arg) lprintf(LOG_DEBUG,"%04d SMTP NAME ALIAS: %s (for %s)" ,socket,p,rcpt_addr); - /* Check if message is to be processed by an external mail processor */ + /* Check if message is to be processed by one or more external mail processors */ + mailproc_match = INT_MAX; // no match, by default for(i=0;i<mailproc_count;i++) { if(!mailproc_list[i].process_dnsbl && dnsbl_result.s_addr) @@ -4459,10 +4460,10 @@ static void smtp_thread(void* arg) if(findstr_in_list(p, mailproc_list[i].to) || findstr_in_list(rcpt_addr, mailproc_list[i].to)) { mailproc_to_match[i]=TRUE; - break; + if(!mailproc_list[i].passthru) + mailproc_match = i; } } - mailproc_match=i; if(!strnicmp(p,"sub:",4)) { /* Post on a sub-board */ p+=4;