X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fnetwork%2Fserv_netmail.c;h=a1938c64cbcfbe949d31c5c4df14d7bd081a47df;hb=2b57abb4e89077f1bdf104e95203015810cf1a6f;hp=b06da93f1a0e17461d31a0b88ee49a01db525089;hpb=158e8958500476d1115c7b70f6c81a87bb0ade47;p=citadel.git diff --git a/citadel/modules/network/serv_netmail.c b/citadel/modules/network/serv_netmail.c index b06da93f1..a1938c64c 100644 --- a/citadel/modules/network/serv_netmail.c +++ b/citadel/modules/network/serv_netmail.c @@ -136,8 +136,7 @@ static void ListCalculateSubject(struct CtdlMessage *msg) Subject = NewStrBufPlain(HKEY("(no subject)")); } else { - Subject = NewStrBufPlain( - msg->cm_fields[eMsgSubject], -1); + Subject = NewStrBufPlain(CM_KEY(msg, eMsgSubject)); } FlatSubject = NewStrBufPlain(NULL, StrLength(Subject)); StrBuf_RFC822_to_Utf8(FlatSubject, Subject, NULL, NULL); @@ -183,14 +182,8 @@ void network_deliver_digest(SpoolControl *sc) recptypes *valid; char bounce_to[256]; - if (sc->Users[listrecp] == NULL) - return; - - if (sc->num_msgs_spooled < 1) { - fclose(sc->digestfp); - sc->digestfp = NULL; + if (sc->Users[digestrecp] == NULL) return; - } msg = malloc(sizeof(struct CtdlMessage)); memset(msg, 0, sizeof(struct CtdlMessage)); @@ -220,19 +213,15 @@ void network_deliver_digest(SpoolControl *sc) fread(pbuf, (size_t)msglen, 1, sc->digestfp); pbuf[msglen] = '\0'; CM_SetAsField(msg, eMesageText, &pbuf, msglen); - fclose(sc->digestfp); - sc->digestfp = NULL; /* Now generate the delivery instructions */ - if (sc->Users[listrecp] == NULL) - return; /* Where do we want bounces and other noise to be heard? - *Surely not the list members! */ + * Surely not the list members! */ snprintf(bounce_to, sizeof bounce_to, "room_aide@%s", config.c_fqdn); /* Now submit the message */ - valid = validate_recipients(ChrPtr(sc->Users[listrecp]), NULL, 0); + valid = validate_recipients(ChrPtr(sc->Users[digestrecp]), NULL, 0); if (valid != NULL) { valid->bounce_to = strdup(bounce_to); valid->envelope_from = strdup(bounce_to); @@ -257,6 +246,7 @@ void network_process_digest(SpoolControl *sc, struct CtdlMessage *omsg, long *de msg = CM_Duplicate(omsg); if (msg != NULL) { + sc->haveDigest = 1; fprintf(sc->digestfp, " -----------------------------------" "------------------------------------" @@ -326,7 +316,7 @@ void network_process_list(SpoolControl *sc, struct CtdlMessage *omsg, long *dele msg = CM_Duplicate(omsg); - CM_SetField(msg, eListID, SKEY(sc->Users[roommailalias])); + CM_SetField(msg, eReplyTo, SKEY(sc->Users[roommailalias])); /* if there is no other recipient, Set the recipient * of the list message to the email address of the @@ -407,7 +397,7 @@ void network_process_participate(SpoolControl *sc, struct CtdlMessage *omsg, lon ok_to_participate = 1; } - Buf = NewStrBufPlain(msg->cm_fields[eNodeName], -1); + Buf = NewStrBufPlain(CM_KEY(msg, eNodeName)); if (CtdlIsValidNode(NULL, NULL, Buf,