X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fsmtp%2Fserv_smtpeventclient.c;h=abacc906f0d3466d67459905de99ec6701a3df7c;hb=07083a4cffdc94eeb1e531c7315335e04b8ae135;hp=e85dfe411f1f96c2a90b6c4cd1cb66faf2dcc043;hpb=ab5c8068bad6fe3134f11c4a930d75da3d26cbfe;p=citadel.git diff --git a/citadel/modules/smtp/serv_smtpeventclient.c b/citadel/modules/smtp/serv_smtpeventclient.c index e85dfe411..abacc906f 100644 --- a/citadel/modules/smtp/serv_smtpeventclient.c +++ b/citadel/modules/smtp/serv_smtpeventclient.c @@ -177,7 +177,7 @@ eNextState FinalizeMessageSend_DB(AsyncIO *IO) Msg->MyQItem->QueMsgID = -1; if (Msg->IDestructQueItem) - smtpq_do_bounce(Msg->MyQItem, Msg->msgtext); + smtpq_do_bounce(Msg->MyQItem, Msg->msgtext, Msg->pCurrRelay); if (Msg->nRemain > 0) { @@ -587,8 +587,10 @@ void smtp_try_one_queue_entry(OneQueItem *MyQItem, if (KeepMsgText) Msg->msgtext = MsgText; else Msg->msgtext = NewStrBufDup(MsgText); - if (smtp_resolve_recipients(Msg)) { - + if (smtp_resolve_recipients(Msg) && + (!MyQItem->HaveRelay || + (MyQItem->URL != NULL))) + { safestrncpy( ((CitContext *)Msg->IO.CitContext)->cs_host, Msg->node, @@ -619,11 +621,12 @@ void smtp_try_one_queue_entry(OneQueItem *MyQItem, /* No recipients? well fail then. */ if (Msg->MyQEntry != NULL) { Msg->MyQEntry->Status = 5; - StrBufPlain(Msg->MyQEntry->StatusMessage, - HKEY("Invalid Recipient!")); + if (StrLength(Msg->MyQEntry->StatusMessage) == 0) + StrBufPlain(Msg->MyQEntry->StatusMessage, + HKEY("Invalid Recipient!")); } FinalizeMessageSend_DB(&Msg->IO); - DeleteSmtpOutMsg(&Msg->IO); + DeleteSmtpOutMsg(Msg); } }