lwc:linux:sympa

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lwc:linux:sympa [2025/12/04 14:39] – [apt install sympa 6.2.70 on ubuntu 24.04] John Harrisonlwc:linux:sympa [2025/12/15 07:54] (current) John Harrison
Line 123: Line 123:
     * Apparently the outgoing sender might have also added a Precedence header or maybe sympa is just confused :-o     * Apparently the outgoing sender might have also added a Precedence header or maybe sympa is just confused :-o
     * The result is that there is no Precedence header at all but that header has been obsoleted anyway so nothing lost     * The result is that there is no Precedence header at all but that header has been obsoleted anyway so nothing lost
-  * to fix, add to ''/etc/sympa/sympa/sympa.conf'': ''remove_outgoing_headers Precedence'' +  * to fix, add to ''/etc/sympa/sympa/sympa.conf'': ''remove_outgoing_headers Precedence'' 
 +    * also available as a setting in the UI in ''sending/receiving setup'' -> ''Header fields to be removed before message distribution (remove_outgoing_headers)(default)''
  
 ==== Customizing Templates ==== ==== Customizing Templates ====
Line 131: Line 132:
   - Site Level: ''/etc/sympa/mail_tt2/''   - Site Level: ''/etc/sympa/mail_tt2/''
   - Default: ''/usr/share/sympa/default/mail_tt2/'' (Lowest Priority)   - Default: ''/usr/share/sympa/default/mail_tt2/'' (Lowest Priority)
 +=== Cascaded Templates for messages sent to the list ===
 +  * have 2 footers, one plaintext (''message.footer'') and one html (''message.footer.mime'')
  
-To customize a template for one specific list, copy the default file into that list's folder and edit it there.+  - List Level: ''/etc/sympa/list_configs/[list_name]/message.footer.mime'' 
 +  - Robot/Domain Level: ''/etc/sympa/lists.lawrencemakers.org/message.footer.mime'' 
 +  - Site/Global Level: /''etc/sympa/message.footer.mime'' 
 +  - Default: ''/usr/share/sympa/default/message.footer.mime''
  
 ==== Unsubscribe Header ==== ==== Unsubscribe Header ====
Line 147: Line 153:
  
 ==== List Config ==== ==== List Config ====
-  * config file located at: ''/var/lib/sympa/list_data/<LISTNAME>/config+  * config file located at: ''/var/lib/sympa/list_data/<LISTNAME>/config'' 
 +  * To get the emails sent from the list instead of the sender in the UI: 
 +    * ''Admin'' -> ''Edit List Config'' -> ''DKIM/DMARC/ARC'' 
 +      * ''DMARC Protection'' -> ''All'' 
 +      * ''New From name format'' -> ''"Name" (via list)'' 
 +  * Change the from address from the sender to the list: 
 +    * ''Admin'' -> ''Edit List Config'' -> ''Sending/Receiving Setup'' 
 +    * ''"Reply address"'' -> change to ''All'' 
 +  * Prepend the list name to the subjects when sending out: 
 +    * ''Admin'' -> ''Edit List Config'' -> ''Sending/Receiving Setup'' 
 +    * ''Subject tagging (custom_subject)'' -> ''[% list.name %]'' 
 +  * Get rid of the "via list" in the from: 
 +    * ''Admin'' -> ''Edit List Config'' -> ''DKIM/DMARC/ARC'' 
 +    * ''New From name format (phrase)'' -> set to ''Name'' 
 +  * consider increasing max message size: 
 +    * ''Admin'' -> ''Edit List Config'' -> ''Sending/Receiving Setup'' 
 +    *  ''Maximum message size (max_size)(default)'' -> ''20971520'' 
 +  * allow subscribers to view who is subscribed: 
 +    * ''Who can review subscribers (review)'' -> ''Restricted to subscribers (private)'' 
 +  * create a list template to change the defaults for a new list: 
 +<code> 
 +# make a home for the new default override 
 +sudo mkdir -p /etc/sympa/create_list_templates 
 +# copy from the original default 
 +sudo cp -r /usr/share/sympa/default/create_list_templates/discussion_list /etc/sympa/create_list_templates/ 
 +# edit to your heart's content: 
 +sudo emacs -nw /etc/sympa/create_list_templates/discussion_list/config.tt2 
 +</code> 
 ==== Prettying it up ==== ==== Prettying it up ====
 === Logo and Favicon === === Logo and Favicon ===
Line 159: Line 193:
 </code> </code>
  
 +==== Null Sender ====
 +=== Defining the problem ===
 +  * Sympa uses null sender (<>) when sending automated administrative messages like "post rejected: you aren't a member of the list"
 +  * Amazon SES rejects null sender on SMTP relay (all my testing confirmed this and their AI FAQ thingie says this as well)
 +  * Sending direct (skipping Amazon SES relay) fails too at least for gmail, who blocks null sender from my server address and accepts other addresses from the same server IP
 +  * I tried many many attempts to get Postfix to replace the null sender with noreply@ and after hours of this gave up
 +=== Workaround ===
 +//yes I know this is a terrible workaround but couldn't figure out anything better//
 +  * Edit Sympa's ''/usr/share/sympa/lib/Sympa/Mailer.pm'' to use ''no-reply@'' instead of null. In the file:
 +<code>
 +#change
 +($return_path eq '<>' ? '' : $return_path), '--', @rcpt;
 +#to
 +($return_path eq '<>' ? 'no-reply@SYMPA_SUBDOMAIN' : $return_path), '--', @rcpt;
 +</code>
 +  * write a simple script to make sure you are notified if ''Mailer.pm'' ever gets updated:
 +<code>
 +#!/bin/bash
 +
 +FILE="/usr/share/sympa/lib/Sympa/Mailer.pm"
 +TARGET_MD5="<PUT MD5 HERE>"
 +
 +
 +# Check if the file exists
 +if [ ! -f "$FILE" ]; then
 +    /usr/bin/echo "Error: File '$FILE' not found."
 +    /usr/bin/logger -t checkMailer "Error: File '$FILE' not found."
 +    /usr/bin/swaks --from FROM_ADDR --to TO_ADDR --h-Subject "checkMailer: FILE NOT FOUND" --body "Error: File '$FILE' not found." --server localhost
 +
 +    exit 1
 +fi
 +
 +# Get the md5 of the file
 +MD5=$(md5sum /usr/share/sympa/lib/Sympa/Mailer.pm | awk {'print $1'})
 +
 +# Compare the md5 to the target
 +if [ "$MD5" == "$TARGET_MD5" ]; then
 +    /usr/bin/echo "INFO: md5 for $FILE matches target."
 +    /usr/bin/logger -t checkMailer "INFO: md5 for $FILE matches target."
 +    /usr/bin/swaks --from FROM_ADDR --to TO_ADDR --h-Subject "checkMailer: md5 matches" --body "Good news: the md5 of $FILE has not changed" --server localhost
 +else
 +    /usr/bin/echo "WARNING: md5 for $FILE does NOT match target."
 +    /usr/bin/logger -t checkMailer "WARNING: md5 for $FILE does NOT match target."
 +    /usr/bin/swaks --from FROM_ADDR --to TO_ADDR --h-Subject "checkMailer: md5 does NOT match" --body "Bad news: the md5 of $FILE changed. Update null sender now." --server localhost
 +fi
 +
 +</code>
 +  * ''chmod 755'' and set up a daily cron for the script
 +  * set Sympa to dump any bounced emails to noreply@:
 +    * in ''/etc/sympa/aliases.sympa.postfix'' add ''no-reply:              "|/bin/true"''
 +    * ''sudo postalias /etc/sympa/aliases.sympa.postfix''
 +    * ''sudo postfix reload''
 +=== Oh wait but we aren't done: Admin email is passing Google DKIM but failing Outlook DKIM ===
 +Outlook is pretty unhappy with ''Content-Type: multipart/report''. To fix this:
 +  * change ''/etc/sympa/mail_tt2/delivery_status_notification.tt2'' from ''Content-Type: multipart/report'' to ''Content-Type: text/plain''
 +  * //To make it look pretty, you will definitely want make some other changes to the template as well//
 ==== Misc ==== ==== Misc ====
   * It's a good idea to set the domain up with [[https://postmaster.google.com/|Google Postmaster Tools]] for some analytics sending to gmail addresses if you ever need it   * It's a good idea to set the domain up with [[https://postmaster.google.com/|Google Postmaster Tools]] for some analytics sending to gmail addresses if you ever need it
 +  * There's a list template which sets the defaults for new lists when they are created. It's possible to override with a new template. I did not look further into this.
 +  * completely removing a list needs to happen from the CLI: ''sudo /usr/lib/sympa/bin/sympa.pl --purge_list=LISTNAME@SUBDOMAIN_OF_WEB_UI''
 +  * From [[https://www.sympa.community/manual/customize/basics-templates.html|the documentation]]: "By default, text body of mail template (except attached part described in above) is wrapped. X-Sympa-NoWrap pseudo-header field prevents line wrapping."
  • lwc/linux/sympa.1764880782.txt.gz
  • Last modified: 2025/12/04 14:39
  • by John Harrison