From: Art Cancro Date: Thu, 30 Dec 2021 17:38:11 +0000 (-0500) Subject: List-Unsubscribe: header is now being generated and is correct! X-Git-Tag: v943~1 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;h=3bb79ddafcaf2407173223816312c6e6ce2ee5a8;p=citadel.git List-Unsubscribe: header is now being generated and is correct! --- diff --git a/citadel/modules/smtp/serv_smtpclient.c b/citadel/modules/smtp/serv_smtpclient.c index 473b310e5..b528b5f53 100644 --- a/citadel/modules/smtp/serv_smtpclient.c +++ b/citadel/modules/smtp/serv_smtpclient.c @@ -234,8 +234,16 @@ int smtp_attempt_delivery(long msgid, char *recp, char *envelope_from, char *sou CC->redirect_buffer = NewStrBufPlain(NULL, SIZ); if (!IsEmptyStr(source_room)) { - // FIXME this is a useless header; we really want to generate a List-Unsubscribe header here. - cprintf("X-Citadel-Source-Room: %s\r\n", source_room); + // If we have a source room, it's probably a mailing list message; generate an unsubscribe header + char esc_room[ROOMNAMELEN*2]; + char esc_email[1024]; + urlesc(esc_room, sizeof esc_room, source_room); + urlesc(esc_email, sizeof esc_email, recp); + cprintf("List-Unsubscribe: \r\n", + CtdlGetConfigStr("c_fqdn"), + esc_room, + esc_email + ); } CtdlOutputMsg(msgid, MT_RFC822, HEADERS_ALL, 0, 1, NULL, 0, NULL, &fromaddr, NULL); s.TheMessage = CC->redirect_buffer;