|
@@ -92,6 +92,12 @@ USE_HWRNG="yes"
|
92
|
92
|
# Whether this system is being installed within a docker container
|
93
|
93
|
INSTALLED_WITHIN_DOCKER="no"
|
94
|
94
|
|
|
95
|
+# If you want to run a public mailing list specify its name here.
|
|
96
|
+# There should be no spaces in the name
|
|
97
|
+PUBLIC_MAILING_LIST=
|
|
98
|
+# Optional different domain name for the public mailing list
|
|
99
|
+PUBLIC_MAILING_LIST_DOMAIN_NAME=
|
|
100
|
+
|
95
|
101
|
# If you want to run an encrypted mailing list specify its name here.
|
96
|
102
|
# There should be no spaces in the name
|
97
|
103
|
PRIVATE_MAILING_LIST=
|
|
@@ -1665,6 +1671,70 @@ function dynamic_dns_freedns {
|
1665
|
1671
|
echo 'dynamic_dns_freedns' >> $COMPLETION_FILE
|
1666
|
1672
|
}
|
1667
|
1673
|
|
|
1674
|
+function create_public_mailing_list {
|
|
1675
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" ]]; then
|
|
1676
|
+ return
|
|
1677
|
+ fi
|
|
1678
|
+ if grep -Fxq "create_public_mailing_list" $COMPLETION_FILE; then
|
|
1679
|
+ return
|
|
1680
|
+ fi
|
|
1681
|
+ if [ ! $PUBLIC_MAILING_LIST ]; then
|
|
1682
|
+ return
|
|
1683
|
+ fi
|
|
1684
|
+ # does the mailing list have a separate domain name?
|
|
1685
|
+ if [ ! $PUBLIC_MAILING_LIST_DOMAIN_NAME ]; then
|
|
1686
|
+ PUBLIC_MAILING_LIST_DOMAIN_NAME=$DOMAIN_NAME
|
|
1687
|
+ fi
|
|
1688
|
+
|
|
1689
|
+ apt-get -y --force-yes install mlmmj
|
|
1690
|
+ adduser --system mlmmj
|
|
1691
|
+
|
|
1692
|
+ # create the list
|
|
1693
|
+ mlmmj-make-ml -a -L "$PUBLIC_MAILING_LIST" -c mlmmj
|
|
1694
|
+
|
|
1695
|
+ echo 'mlmmj_router:' > /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
1696
|
+ echo ' driver = accept' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
1697
|
+ echo ' domains = +mlmmj_domains' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
1698
|
+ echo ' require_files = MLMMJ_HOME/${lc::$local_part}' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
1699
|
+ echo ' # Use this instead, if you dont want to give Exim rx rights to mlmmj spool.' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
1700
|
+ echo ' # Exim will then spawn a new process running under the UID of "mlmmj".' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
1701
|
+ echo ' #require_files = mlmmj:MLMMJ_HOME/${lc::$local_part}' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
1702
|
+ echo ' local_part_suffix = +*' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
1703
|
+ echo ' local_part_suffix_optional' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
1704
|
+ echo ' headers_remove = Delivered-To' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
1705
|
+ echo ' headers_add = Delivered-To: $local_part$local_part_suffix@$domain' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
1706
|
+ echo ' transport = mlmmj_transport' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
1707
|
+
|
|
1708
|
+ echo 'mlmmj_transport:' > /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
|
1709
|
+ echo ' driver = pipe' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
|
1710
|
+ echo ' return_path_add' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
|
1711
|
+ echo ' user = mlmmj' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
|
1712
|
+ echo ' group = mlmmj' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
|
1713
|
+ echo ' home_directory = MLMMJ_HOME' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
|
1714
|
+ echo ' current_directory = MLMMJ_HOME' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
|
1715
|
+ echo ' command = /usr/local/bin/mlmmj-receive -F -L MLMMJ_HOME/${lc:$local_part}' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
|
1716
|
+
|
|
1717
|
+ if ! grep -q "MLMMJ_HOME=/var/spool/mlmmj" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs; then
|
|
1718
|
+ sed -i '/MAIN CONFIGURATION SETTINGS/a\MLMMJ_HOME=/var/spool/mlmmj' /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
|
|
1719
|
+ fi
|
|
1720
|
+ if ! grep -q "domainlist mlmmj_domains =" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs; then
|
|
1721
|
+ sed -i "/MLMMJ_HOME/a\domainlist mlmmj_domains = $PUBLIC_MAILING_LIST_DOMAIN_NAME" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
|
|
1722
|
+ fi
|
|
1723
|
+
|
|
1724
|
+ if ! grep -q ": +mlmmj_domains" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs; then
|
|
1725
|
+ sed -i 's/domainlist relay_to_domains = MAIN_RELAY_TO_DOMAINS/domainlist relay_to_domains = MAIN_RELAY_TO_DOMAINS : +mlmmj_domains/g' /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
|
|
1726
|
+ fi
|
|
1727
|
+
|
|
1728
|
+ if ! grep -q "! +mlmmj_domains" /etc/exim4/conf.d/router/200_exim4-config_primary; then
|
|
1729
|
+ sed -i 's/domains = ! +local_domains/domains = ! +mlmmj_domains : ! +local_domains/g' /etc/exim4/conf.d/router/200_exim4-config_primary
|
|
1730
|
+ fi
|
|
1731
|
+ service exim4 restart
|
|
1732
|
+
|
|
1733
|
+ mailinglistrule $MY_USERNAME "$PUBLIC_MAILING_LIST" "$PUBLIC_MAILING_LIST"
|
|
1734
|
+
|
|
1735
|
+ echo 'create_public_mailing_list' >> $COMPLETION_FILE
|
|
1736
|
+}
|
|
1737
|
+
|
1668
|
1738
|
function create_private_mailing_list {
|
1669
|
1739
|
if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" ]]; then
|
1670
|
1740
|
return
|
|
@@ -1677,7 +1747,7 @@ function create_private_mailing_list {
|
1677
|
1747
|
if [ ! $PRIVATE_MAILING_LIST ]; then
|
1678
|
1748
|
return
|
1679
|
1749
|
fi
|
1680
|
|
- if [ $PRIVATE_MAILING_LIST == $MY_USERNAME ]; then
|
|
1750
|
+ if [[ $PRIVATE_MAILING_LIST == $MY_USERNAME ]]; then
|
1681
|
1751
|
echo 'The name of the private mailing list should not be the'
|
1682
|
1752
|
echo 'same as your username'
|
1683
|
1753
|
exit 10
|
|
@@ -3526,6 +3596,7 @@ configure_firewall_for_email
|
3526
|
3596
|
folders_for_mailing_lists
|
3527
|
3597
|
folders_for_email_addresses
|
3528
|
3598
|
dynamic_dns_freedns
|
|
3599
|
+create_public_mailing_list
|
3529
|
3600
|
#create_private_mailing_list
|
3530
|
3601
|
import_email
|
3531
|
3602
|
script_for_attaching_usb_drive
|