* This module handles shared rooms, inter-Citadel mail, and outbound
* mailing list processing.
*
- * Copyright (c) 2000-2012 by the citadel.org team
+ * Copyright (c) 2000-2015 by the citadel.org team
*
* This program is open source software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, version 3.
if (sc->Users[digestrecp] == NULL)
return;
- if (sc->num_msgs_spooled < 1) {
- fclose(sc->digestfp);
- sc->digestfp = NULL;
- return;
- }
-
msg = malloc(sizeof(struct CtdlMessage));
memset(msg, 0, sizeof(struct CtdlMessage));
msg->cm_magic = CTDLMESSAGE_MAGIC;
CM_SetAsField(msg, eMesageText, &pbuf, msglen);
/* Now generate the delivery instructions */
- if (sc->Users[digestrecp] == NULL)
- return;
/* Where do we want bounces and other noise to be heard?
- *Surely not the list members! */
- snprintf(bounce_to, sizeof bounce_to, "room_aide@%s", config.c_fqdn);
+ * Surely not the list members! */
+ snprintf(bounce_to, sizeof bounce_to, "room_aide@%s", CtdlGetConfigStr("c_fqdn"));
/* Now submit the message */
valid = validate_recipients(ChrPtr(sc->Users[digestrecp]), NULL, 0);
struct CtdlMessage *msg = NULL;
- /*
- * Process digest recipients
- */
- if ((sc->Users[digestrecp] == NULL)||
- (sc->digestfp == NULL))
+ if (sc->Users[digestrecp] == NULL)
return;
+ /* If there are digest recipients, we have to build a digest */
+ if (sc->digestfp == NULL) {
+
+ sc->digestfp = create_digest_file(&sc->room, 1);
+
+ if (sc->digestfp == NULL)
+ return;
+
+ sc->haveDigest = ftell(sc->digestfp) > 0;
+ if (!sc->haveDigest) {
+ fprintf(sc->digestfp, "Content-type: text/plain\n\n");
+ }
+ sc->haveDigest = 1;
+ }
+
msg = CM_Duplicate(omsg);
if (msg != NULL) {
+ sc->haveDigest = 1;
fprintf(sc->digestfp,
" -----------------------------------"
"------------------------------------"
/* Where do we want bounces and other noise to be heard?
* Surely not the list members! */
- snprintf(bounce_to, sizeof bounce_to, "room_aide@%s", config.c_fqdn);
+ snprintf(bounce_to, sizeof bounce_to, "room_aide@%s", CtdlGetConfigStr("c_fqdn"));
/* Now submit the message */
valid = validate_recipients(ChrPtr(sc->Users[listrecp]), NULL, 0);
*/
ok_to_participate = 0;
if (!CM_IsEmpty(msg, eNodeName)) {
- if (!strcasecmp(msg->cm_fields[eNodeName],
- config.c_nodename)) {
+ if (!strcasecmp(msg->cm_fields[eNodeName], CtdlGetConfigStr("c_nodename")))
+ {
ok_to_participate = 1;
}
sc = (SpoolControl *)userdata;
- msg = CtdlFetchMessage(msgnum, 1);
+ msg = CtdlFetchMessage(msgnum, 1, 1);
if (msg == NULL)
{