void smtpq_do_bounce(OneQueItem *MyQItem, StrBuf *OMsgTxt, ParsedURL *Relay)
{
static int seq = 0;
-
+
struct CtdlMessage *bmsg = NULL;
StrBuf *boundary;
StrBuf *Msg = NULL;
StrBufAppendBufPlain(Msg, HKEY(" "), 0);
StrBufAppendBuf(Msg, ThisItem->Recipient, 0);
StrBufAppendBufPlain(Msg, HKEY(": "), 0);
- StrBufAppendBuf(Msg, ThisItem->StatusMessage, 0);
+ if (ThisItem->AllStatusMessages != NULL)
+ StrBufAppendBuf(Msg, ThisItem->AllStatusMessages, 0);
+ else
+ StrBufAppendBuf(Msg, ThisItem->StatusMessage, 0);
StrBufAppendBufPlain(Msg, HKEY("\r\n"), 0);
}
}
bmsg->cm_anon_type = MES_NORMAL;
bmsg->cm_format_type = FMT_RFC822;
- bmsg->cm_fields['O'] = strdup(MAILROOM);
- bmsg->cm_fields['A'] = strdup("Citadel");
- bmsg->cm_fields['N'] = strdup(config.c_nodename);
- bmsg->cm_fields['U'] = strdup("Delivery Status Notification (Failure)");
- bmsg->cm_fields['M'] = SmashStrBuf(&BounceMB);
+ CM_SetField(bmsg, eOriginalRoom, HKEY(MAILROOM));
+ CM_SetField(bmsg, eAuthor, HKEY("Citadel"));
+ CM_SetField(bmsg, eNodeName, config.c_nodename, strlen(config.c_nodename));
+ CM_SetField(bmsg, eMsgSubject, HKEY("Delivery Status Notification (Failure)"));
+ CM_SetAsFieldSB(bmsg, eMesageText, &BounceMB);
/* First try the user who sent the message */
if (StrLength(MyQItem->BounceTo) == 0) {
return;
}
- pch = instr = msg->cm_fields['M'];
+ pch = instr = msg->cm_fields[eMesageText];
/* Strip out the headers (no not amd any other non-instruction) line */
while (pch != NULL) {
n,
RelayUrls);
- if (KeepBuffers) HaveBuffers = 1;
+ if (KeepBuffers) HaveBuffers++;
i++;
}
n,
RelayUrls);
- if (KeepBuffers) HaveBuffers = 1;
+ if (KeepBuffers) HaveBuffers++;
i++;
}