Fossil SCM

Do not include the List-Id in announcement messages to non-subscribers. But do include the List-Id for renewal notices.

drh 2025-04-23 18:13 trunk
Commit 908612e3342cae52876e322f754be9a4fabc737ba0a3d9d8d4fe87115b458afc
1 file changed +31 -17
+31 -17
--- src/alerts.c
+++ src/alerts.c
@@ -984,13 +984,10 @@
984984
blob_appendf(pOut, "Sender: <%s>\r\n", p->zFrom);
985985
}else{
986986
blob_appendf(pOut, "From: <%s>\r\n", p->zFrom);
987987
}
988988
blob_appendf(pOut, "Date: %z\r\n", cgi_rfc822_datestamp(time(0)));
989
- if( p->zListId && p->zListId[0] ){
990
- blob_appendf(pOut, "List-Id: %s\r\n", p->zListId);
991
- }
992989
if( strstr(blob_str(pHdr), "\r\nMessage-Id:")==0 ){
993990
/* Message-id format: "<$(date)x$(random)@$(from-host)>" where $(date) is
994991
** the current unix-time in hex, $(random) is a 64-bit random number,
995992
** and $(from) is the domain part of the email-self setting. */
996993
sqlite3_randomness(sizeof(r1), &r1);
@@ -3215,18 +3212,21 @@
32153212
Blob fhdr, fbody;
32163213
blob_init(&fhdr, 0, 0);
32173214
blob_appendf(&fhdr, "To: <%s>\r\n", zEmail);
32183215
blob_append(&fhdr, blob_buffer(&p->hdr), blob_size(&p->hdr));
32193216
blob_init(&fbody, blob_buffer(&p->txt), blob_size(&p->txt));
3220
- blob_appendf(&fhdr, "List-Unsubscribe: <%s/oneclickunsub/%s>\r\n",
3221
- zUrl, zCode);
3222
- blob_appendf(&fhdr,
3223
- "List-Unsubscribe-Post: List-Unsubscribe=One-Click\r\n");
3224
- blob_appendf(&fbody, "\n-- \nUnsubscribe: %s/unsubscribe/%s\n",
3225
- zUrl, zCode);
3226
- /* blob_appendf(&fbody, "Subscription settings: %s/alerts/%s\n",
3227
- ** zUrl, zCode); */
3217
+ if( pSender->zListId && pSender->zListId[0] ){
3218
+ blob_appendf(&fhdr, "List-Id: %s\r\n", pSender->zListId);
3219
+ blob_appendf(&fhdr, "List-Unsubscribe: <%s/oneclickunsub/%s>\r\n",
3220
+ zUrl, zCode);
3221
+ blob_appendf(&fhdr,
3222
+ "List-Unsubscribe-Post: List-Unsubscribe=One-Click\r\n");
3223
+ blob_appendf(&fbody, "\n-- \nUnsubscribe: %s/unsubscribe/%s\n",
3224
+ zUrl, zCode);
3225
+ /* blob_appendf(&fbody, "Subscription settings: %s/alerts/%s\n",
3226
+ ** zUrl, zCode); */
3227
+ }
32283228
alert_send(pSender,&fhdr,&fbody,p->zFromName);
32293229
nSent++;
32303230
blob_reset(&fhdr);
32313231
blob_reset(&fbody);
32323232
}else{
@@ -3245,15 +3245,19 @@
32453245
blob_append(&body, "\n", 1);
32463246
blob_append(&body, blob_buffer(&p->txt), blob_size(&p->txt));
32473247
}
32483248
}
32493249
if( nHit==0 ) continue;
3250
- blob_appendf(&hdr, "List-Unsubscribe: <%s/oneclickunsub/%s>\r\n",
3251
- zUrl, zCode);
3252
- blob_appendf(&hdr, "List-Unsubscribe-Post: List-Unsubscribe=One-Click\r\n");
3253
- blob_appendf(&body,"\n-- \nSubscription info: %s/alerts/%s\n",
3254
- zUrl, zCode);
3250
+ if( pSender->zListId && pSender->zListId[0] ){
3251
+ blob_appendf(&hdr, "List-Id: %s\r\n", pSender->zListId);
3252
+ blob_appendf(&hdr, "List-Unsubscribe: <%s/oneclickunsub/%s>\r\n",
3253
+ zUrl, zCode);
3254
+ blob_appendf(&hdr,
3255
+ "List-Unsubscribe-Post: List-Unsubscribe=One-Click\r\n");
3256
+ blob_appendf(&body,"\n-- \nSubscription info: %s/alerts/%s\n",
3257
+ zUrl, zCode);
3258
+ }
32553259
alert_send(pSender,&hdr,&body,0);
32563260
nSent++;
32573261
blob_truncate(&hdr, 0);
32583262
blob_truncate(&body, 0);
32593263
}
@@ -3295,18 +3299,28 @@
32953299
" AND length(sdigest)>0",
32963300
iNewWarn, iOldWarn
32973301
);
32983302
while( db_step(&q)==SQLITE_ROW ){
32993303
Blob hdr, body;
3304
+ const char *zCode = db_column_text(&q,0);
33003305
blob_init(&hdr, 0, 0);
33013306
blob_init(&body, 0, 0);
33023307
alert_renewal_msg(&hdr, &body,
3303
- db_column_text(&q,0),
3308
+ zCode,
33043309
db_column_int(&q,1),
33053310
db_column_text(&q,2),
33063311
db_column_text(&q,3),
33073312
zRepoName, zUrl);
3313
+ if( pSender->zListId && pSender->zListId[0] ){
3314
+ blob_appendf(&hdr, "List-Id: %s\r\n", pSender->zListId);
3315
+ blob_appendf(&hdr, "List-Unsubscribe: <%s/oneclickunsub/%s>\r\n",
3316
+ zUrl, zCode);
3317
+ blob_appendf(&hdr,
3318
+ "List-Unsubscribe-Post: List-Unsubscribe=One-Click\r\n");
3319
+ blob_appendf(&body, "\n-- \nUnsubscribe: %s/unsubscribe/%s\n",
3320
+ zUrl, zCode);
3321
+ }
33083322
alert_send(pSender,&hdr,&body,0);
33093323
blob_reset(&hdr);
33103324
blob_reset(&body);
33113325
}
33123326
db_finalize(&q);
33133327
--- src/alerts.c
+++ src/alerts.c
@@ -984,13 +984,10 @@
984 blob_appendf(pOut, "Sender: <%s>\r\n", p->zFrom);
985 }else{
986 blob_appendf(pOut, "From: <%s>\r\n", p->zFrom);
987 }
988 blob_appendf(pOut, "Date: %z\r\n", cgi_rfc822_datestamp(time(0)));
989 if( p->zListId && p->zListId[0] ){
990 blob_appendf(pOut, "List-Id: %s\r\n", p->zListId);
991 }
992 if( strstr(blob_str(pHdr), "\r\nMessage-Id:")==0 ){
993 /* Message-id format: "<$(date)x$(random)@$(from-host)>" where $(date) is
994 ** the current unix-time in hex, $(random) is a 64-bit random number,
995 ** and $(from) is the domain part of the email-self setting. */
996 sqlite3_randomness(sizeof(r1), &r1);
@@ -3215,18 +3212,21 @@
3215 Blob fhdr, fbody;
3216 blob_init(&fhdr, 0, 0);
3217 blob_appendf(&fhdr, "To: <%s>\r\n", zEmail);
3218 blob_append(&fhdr, blob_buffer(&p->hdr), blob_size(&p->hdr));
3219 blob_init(&fbody, blob_buffer(&p->txt), blob_size(&p->txt));
3220 blob_appendf(&fhdr, "List-Unsubscribe: <%s/oneclickunsub/%s>\r\n",
3221 zUrl, zCode);
3222 blob_appendf(&fhdr,
3223 "List-Unsubscribe-Post: List-Unsubscribe=One-Click\r\n");
3224 blob_appendf(&fbody, "\n-- \nUnsubscribe: %s/unsubscribe/%s\n",
3225 zUrl, zCode);
3226 /* blob_appendf(&fbody, "Subscription settings: %s/alerts/%s\n",
3227 ** zUrl, zCode); */
 
 
 
3228 alert_send(pSender,&fhdr,&fbody,p->zFromName);
3229 nSent++;
3230 blob_reset(&fhdr);
3231 blob_reset(&fbody);
3232 }else{
@@ -3245,15 +3245,19 @@
3245 blob_append(&body, "\n", 1);
3246 blob_append(&body, blob_buffer(&p->txt), blob_size(&p->txt));
3247 }
3248 }
3249 if( nHit==0 ) continue;
3250 blob_appendf(&hdr, "List-Unsubscribe: <%s/oneclickunsub/%s>\r\n",
3251 zUrl, zCode);
3252 blob_appendf(&hdr, "List-Unsubscribe-Post: List-Unsubscribe=One-Click\r\n");
3253 blob_appendf(&body,"\n-- \nSubscription info: %s/alerts/%s\n",
3254 zUrl, zCode);
 
 
 
 
3255 alert_send(pSender,&hdr,&body,0);
3256 nSent++;
3257 blob_truncate(&hdr, 0);
3258 blob_truncate(&body, 0);
3259 }
@@ -3295,18 +3299,28 @@
3295 " AND length(sdigest)>0",
3296 iNewWarn, iOldWarn
3297 );
3298 while( db_step(&q)==SQLITE_ROW ){
3299 Blob hdr, body;
 
3300 blob_init(&hdr, 0, 0);
3301 blob_init(&body, 0, 0);
3302 alert_renewal_msg(&hdr, &body,
3303 db_column_text(&q,0),
3304 db_column_int(&q,1),
3305 db_column_text(&q,2),
3306 db_column_text(&q,3),
3307 zRepoName, zUrl);
 
 
 
 
 
 
 
 
 
3308 alert_send(pSender,&hdr,&body,0);
3309 blob_reset(&hdr);
3310 blob_reset(&body);
3311 }
3312 db_finalize(&q);
3313
--- src/alerts.c
+++ src/alerts.c
@@ -984,13 +984,10 @@
984 blob_appendf(pOut, "Sender: <%s>\r\n", p->zFrom);
985 }else{
986 blob_appendf(pOut, "From: <%s>\r\n", p->zFrom);
987 }
988 blob_appendf(pOut, "Date: %z\r\n", cgi_rfc822_datestamp(time(0)));
 
 
 
989 if( strstr(blob_str(pHdr), "\r\nMessage-Id:")==0 ){
990 /* Message-id format: "<$(date)x$(random)@$(from-host)>" where $(date) is
991 ** the current unix-time in hex, $(random) is a 64-bit random number,
992 ** and $(from) is the domain part of the email-self setting. */
993 sqlite3_randomness(sizeof(r1), &r1);
@@ -3215,18 +3212,21 @@
3212 Blob fhdr, fbody;
3213 blob_init(&fhdr, 0, 0);
3214 blob_appendf(&fhdr, "To: <%s>\r\n", zEmail);
3215 blob_append(&fhdr, blob_buffer(&p->hdr), blob_size(&p->hdr));
3216 blob_init(&fbody, blob_buffer(&p->txt), blob_size(&p->txt));
3217 if( pSender->zListId && pSender->zListId[0] ){
3218 blob_appendf(&fhdr, "List-Id: %s\r\n", pSender->zListId);
3219 blob_appendf(&fhdr, "List-Unsubscribe: <%s/oneclickunsub/%s>\r\n",
3220 zUrl, zCode);
3221 blob_appendf(&fhdr,
3222 "List-Unsubscribe-Post: List-Unsubscribe=One-Click\r\n");
3223 blob_appendf(&fbody, "\n-- \nUnsubscribe: %s/unsubscribe/%s\n",
3224 zUrl, zCode);
3225 /* blob_appendf(&fbody, "Subscription settings: %s/alerts/%s\n",
3226 ** zUrl, zCode); */
3227 }
3228 alert_send(pSender,&fhdr,&fbody,p->zFromName);
3229 nSent++;
3230 blob_reset(&fhdr);
3231 blob_reset(&fbody);
3232 }else{
@@ -3245,15 +3245,19 @@
3245 blob_append(&body, "\n", 1);
3246 blob_append(&body, blob_buffer(&p->txt), blob_size(&p->txt));
3247 }
3248 }
3249 if( nHit==0 ) continue;
3250 if( pSender->zListId && pSender->zListId[0] ){
3251 blob_appendf(&hdr, "List-Id: %s\r\n", pSender->zListId);
3252 blob_appendf(&hdr, "List-Unsubscribe: <%s/oneclickunsub/%s>\r\n",
3253 zUrl, zCode);
3254 blob_appendf(&hdr,
3255 "List-Unsubscribe-Post: List-Unsubscribe=One-Click\r\n");
3256 blob_appendf(&body,"\n-- \nSubscription info: %s/alerts/%s\n",
3257 zUrl, zCode);
3258 }
3259 alert_send(pSender,&hdr,&body,0);
3260 nSent++;
3261 blob_truncate(&hdr, 0);
3262 blob_truncate(&body, 0);
3263 }
@@ -3295,18 +3299,28 @@
3299 " AND length(sdigest)>0",
3300 iNewWarn, iOldWarn
3301 );
3302 while( db_step(&q)==SQLITE_ROW ){
3303 Blob hdr, body;
3304 const char *zCode = db_column_text(&q,0);
3305 blob_init(&hdr, 0, 0);
3306 blob_init(&body, 0, 0);
3307 alert_renewal_msg(&hdr, &body,
3308 zCode,
3309 db_column_int(&q,1),
3310 db_column_text(&q,2),
3311 db_column_text(&q,3),
3312 zRepoName, zUrl);
3313 if( pSender->zListId && pSender->zListId[0] ){
3314 blob_appendf(&hdr, "List-Id: %s\r\n", pSender->zListId);
3315 blob_appendf(&hdr, "List-Unsubscribe: <%s/oneclickunsub/%s>\r\n",
3316 zUrl, zCode);
3317 blob_appendf(&hdr,
3318 "List-Unsubscribe-Post: List-Unsubscribe=One-Click\r\n");
3319 blob_appendf(&body, "\n-- \nUnsubscribe: %s/unsubscribe/%s\n",
3320 zUrl, zCode);
3321 }
3322 alert_send(pSender,&hdr,&body,0);
3323 blob_reset(&hdr);
3324 blob_reset(&body);
3325 }
3326 db_finalize(&q);
3327

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button