Fossil SCM
Add a List-Unsubscribe: header to all notification emails.
Commit
4a3909afc8f9f3e1c450b68fbb47e1a0fac69064852ed2e1017ee1e0cbc2a35a
Parent
62073f6dbb4b691…
1 file changed
+6
-3
+6
-3
| --- src/alerts.c | ||
| +++ src/alerts.c | ||
| @@ -1582,12 +1582,13 @@ | ||
| 1582 | 1582 | |
| 1583 | 1583 | db_multi_exec( |
| 1584 | 1584 | "DELETE FROM subscriber WHERE subscriberId=%d", sid |
| 1585 | 1585 | ); |
| 1586 | 1586 | style_header("Unsubscribed"); |
| 1587 | - @ <p>The "%h(zEmail)" email address has been unsubscribed and the | |
| 1588 | - @ corresponding row in the subscriber table has been deleted.<p> | |
| 1587 | + @ <p>The "%h(zEmail)" email address has been unsubscribed from all | |
| 1588 | + @ notifications. All subscription records for "%h(zEmail)" have | |
| 1589 | + @ been purged. No further emails will be sent to "%h(zEmail)".</p> | |
| 1589 | 1590 | if( uid && g.perm.Admin ){ |
| 1590 | 1591 | @ <p>You may also want to |
| 1591 | 1592 | @ <a href="%R/setup_uedit?id=%d(uid)">edit or delete |
| 1592 | 1593 | @ the corresponding user "%h(zLogin)"</a></p> |
| 1593 | 1594 | } |
| @@ -2601,11 +2602,11 @@ | ||
| 2601 | 2602 | AlertSender *pSender = 0; |
| 2602 | 2603 | u32 senderFlags = 0; |
| 2603 | 2604 | |
| 2604 | 2605 | if( g.fSqlTrace ) fossil_trace("-- BEGIN alert_send_alerts(%u)\n", flags); |
| 2605 | 2606 | alert_schema(0); |
| 2606 | - if( !alert_enabled() ) goto send_alert_done; | |
| 2607 | + if( !alert_enabled() && (flags & SENDALERT_STDOUT)==0 ) goto send_alert_done; | |
| 2607 | 2608 | zUrl = db_get("email-url",0); |
| 2608 | 2609 | if( zUrl==0 ) goto send_alert_done; |
| 2609 | 2610 | zRepoName = db_get("email-subname",0); |
| 2610 | 2611 | if( zRepoName==0 ) goto send_alert_done; |
| 2611 | 2612 | zFrom = db_get("email-self",0); |
| @@ -2753,10 +2754,12 @@ | ||
| 2753 | 2754 | blob_append(&body, "\n", 1); |
| 2754 | 2755 | blob_append(&body, blob_buffer(&p->txt), blob_size(&p->txt)); |
| 2755 | 2756 | } |
| 2756 | 2757 | } |
| 2757 | 2758 | if( nHit==0 ) continue; |
| 2759 | + blob_appendf(&hdr, "List-Unsubscribe: <%s/unsubscribe/%s>\r\n", | |
| 2760 | + zUrl, zCode); | |
| 2758 | 2761 | blob_appendf(&body,"\n-- \nSubscription info: %s/alerts/%s\n", |
| 2759 | 2762 | zUrl, zCode); |
| 2760 | 2763 | alert_send(pSender,&hdr,&body,0); |
| 2761 | 2764 | nSent++; |
| 2762 | 2765 | blob_truncate(&hdr, 0); |
| 2763 | 2766 |
| --- src/alerts.c | |
| +++ src/alerts.c | |
| @@ -1582,12 +1582,13 @@ | |
| 1582 | |
| 1583 | db_multi_exec( |
| 1584 | "DELETE FROM subscriber WHERE subscriberId=%d", sid |
| 1585 | ); |
| 1586 | style_header("Unsubscribed"); |
| 1587 | @ <p>The "%h(zEmail)" email address has been unsubscribed and the |
| 1588 | @ corresponding row in the subscriber table has been deleted.<p> |
| 1589 | if( uid && g.perm.Admin ){ |
| 1590 | @ <p>You may also want to |
| 1591 | @ <a href="%R/setup_uedit?id=%d(uid)">edit or delete |
| 1592 | @ the corresponding user "%h(zLogin)"</a></p> |
| 1593 | } |
| @@ -2601,11 +2602,11 @@ | |
| 2601 | AlertSender *pSender = 0; |
| 2602 | u32 senderFlags = 0; |
| 2603 | |
| 2604 | if( g.fSqlTrace ) fossil_trace("-- BEGIN alert_send_alerts(%u)\n", flags); |
| 2605 | alert_schema(0); |
| 2606 | if( !alert_enabled() ) goto send_alert_done; |
| 2607 | zUrl = db_get("email-url",0); |
| 2608 | if( zUrl==0 ) goto send_alert_done; |
| 2609 | zRepoName = db_get("email-subname",0); |
| 2610 | if( zRepoName==0 ) goto send_alert_done; |
| 2611 | zFrom = db_get("email-self",0); |
| @@ -2753,10 +2754,12 @@ | |
| 2753 | blob_append(&body, "\n", 1); |
| 2754 | blob_append(&body, blob_buffer(&p->txt), blob_size(&p->txt)); |
| 2755 | } |
| 2756 | } |
| 2757 | if( nHit==0 ) continue; |
| 2758 | blob_appendf(&body,"\n-- \nSubscription info: %s/alerts/%s\n", |
| 2759 | zUrl, zCode); |
| 2760 | alert_send(pSender,&hdr,&body,0); |
| 2761 | nSent++; |
| 2762 | blob_truncate(&hdr, 0); |
| 2763 |
| --- src/alerts.c | |
| +++ src/alerts.c | |
| @@ -1582,12 +1582,13 @@ | |
| 1582 | |
| 1583 | db_multi_exec( |
| 1584 | "DELETE FROM subscriber WHERE subscriberId=%d", sid |
| 1585 | ); |
| 1586 | style_header("Unsubscribed"); |
| 1587 | @ <p>The "%h(zEmail)" email address has been unsubscribed from all |
| 1588 | @ notifications. All subscription records for "%h(zEmail)" have |
| 1589 | @ been purged. No further emails will be sent to "%h(zEmail)".</p> |
| 1590 | if( uid && g.perm.Admin ){ |
| 1591 | @ <p>You may also want to |
| 1592 | @ <a href="%R/setup_uedit?id=%d(uid)">edit or delete |
| 1593 | @ the corresponding user "%h(zLogin)"</a></p> |
| 1594 | } |
| @@ -2601,11 +2602,11 @@ | |
| 2602 | AlertSender *pSender = 0; |
| 2603 | u32 senderFlags = 0; |
| 2604 | |
| 2605 | if( g.fSqlTrace ) fossil_trace("-- BEGIN alert_send_alerts(%u)\n", flags); |
| 2606 | alert_schema(0); |
| 2607 | if( !alert_enabled() && (flags & SENDALERT_STDOUT)==0 ) goto send_alert_done; |
| 2608 | zUrl = db_get("email-url",0); |
| 2609 | if( zUrl==0 ) goto send_alert_done; |
| 2610 | zRepoName = db_get("email-subname",0); |
| 2611 | if( zRepoName==0 ) goto send_alert_done; |
| 2612 | zFrom = db_get("email-self",0); |
| @@ -2753,10 +2754,12 @@ | |
| 2754 | blob_append(&body, "\n", 1); |
| 2755 | blob_append(&body, blob_buffer(&p->txt), blob_size(&p->txt)); |
| 2756 | } |
| 2757 | } |
| 2758 | if( nHit==0 ) continue; |
| 2759 | blob_appendf(&hdr, "List-Unsubscribe: <%s/unsubscribe/%s>\r\n", |
| 2760 | zUrl, zCode); |
| 2761 | blob_appendf(&body,"\n-- \nSubscription info: %s/alerts/%s\n", |
| 2762 | zUrl, zCode); |
| 2763 | alert_send(pSender,&hdr,&body,0); |
| 2764 | nSent++; |
| 2765 | blob_truncate(&hdr, 0); |
| 2766 |