Added code that will send the "request for confirmation" mail out when

apropriate.
This commit is contained in:
Peter Simons 2001-01-15 17:56:33 +00:00
parent afe1f3f231
commit 0cfd7e405e
2 changed files with 75 additions and 0 deletions

View File

@ -174,6 +174,43 @@ AddAddress(struct Mail * MailStruct,
}
return 0;
}
else if (ListConfig->subtype == SUBSCRIPTION_ACKED && !g_is_approved)
{
/* Require confirmation. */
char* command = text_easy_sprintf("unsubscribe %s %s", address, listname);
char* cookie = queue_command(MailStruct, command);
/* Notify the owner. */
fh = vOpenMailer(envelope, address, NULL);
if (fh != NULL)
{
fprintf(fh, "From: petidomo-approve@%s (Petidomo Mailing List Server)\n", ListConfig->fqdn);
fprintf(fh, "To: %s\n", address);
fprintf(fh, "Subject: Petidomo: CONFIRM %s@%s: Request from \"%s\"\n", listname, ListConfig->fqdn, originator);
fprintf(fh, "Precedence: junk\n");
fprintf(fh, "Sender: %s\n", envelope);
fprintf(fh, "\n");
buffer = text_easy_sprintf("Per request from \"%s\", the address \"%s\" should be subscribed to " \
"the mailing list \"%s\". This will not happen unless you confirm the " \
"request by replying to this mail and citing the string",
originator, address, listname);
text_wordwrap(buffer, 70);
fprintf(fh, "%s\n", buffer);
fprintf(fh, "\n %s\n\n", cookie);
fprintf(fh, "in your reply.\n");
CloseMailer(fh);
}
else
{
syslog(LOG_ERR, "Failed to send email to \"%s\"!", owner);
return -1;
}
return 0;
}
}
/* Check whether the address is subscribed already. */

View File

@ -176,6 +176,44 @@ DeleteAddress(struct Mail * MailStruct,
}
return 0;
}
else if (ListConfig->subtype == SUBSCRIPTION_ACKED && !g_is_approved)
{
/* Require confirmation. */
char* command = text_easy_sprintf("unsubscribe %s %s", address, listname);
char* cookie = queue_command(MailStruct, command);
/* Notify the owner. */
fh = vOpenMailer(envelope, address, NULL);
if (fh != NULL)
{
fprintf(fh, "From: petidomo-approve@%s (Petidomo Mailing List Server)\n", ListConfig->fqdn);
fprintf(fh, "To: %s\n", address);
fprintf(fh, "Subject: Petidomo: CONFIRM %s@%s: Request from \"%s\"\n", listname, ListConfig->fqdn, originator);
fprintf(fh, "Precedence: junk\n");
fprintf(fh, "Sender: %s\n", envelope);
fprintf(fh, "\n");
buffer = text_easy_sprintf("Per request from \"%s\", the address \"%s\" should be unsubscribed from " \
"the mailing list \"%s\". This will not happen unless you confirm the " \
"request by replying to this mail and citing the string",
originator, address, listname);
text_wordwrap(buffer, 70);
fprintf(fh, "%s\n", buffer);
fprintf(fh, "\n %s\n\n", cookie);
fprintf(fh, "in your reply.\n");
CloseMailer(fh);
}
else
{
syslog(LOG_ERR, "Failed to send email to \"%s\"!", owner);
return -1;
}
return 0;
}
}
/* Okay, remove the address from the list. */