Просмотр исходного кода

Fix catchall Deb12 / Ubuntu 22.04 (#3760)

* Update exim4.95 config for catchall

* remove extra lines

* Update 1.8.0.sh
Jaap Marcus 2 лет назад
Родитель
Сommit
faa09853af

+ 0 - 2
install/deb/exim/exim4.conf.4.94.template

@@ -362,8 +362,6 @@ terminate_alias:
   transport = devnull
   condition = ${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/aliases}{true}{false}}
 
-
-
 ######################################################################
 #                      TRANSPORTS CONFIGURATION                      #
 ######################################################################

+ 1 - 2
install/deb/exim/exim4.conf.4.95.template

@@ -377,14 +377,13 @@ catchall:
   data = ${extract{1}{:}{${lookup{*@$domain}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/aliases}}}}
   file_transport = local_delivery
   redirect_router = dnslookup
+  condition = ${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/aliases}{false}{true}}
 
 terminate_alias:
   driver = accept
   transport = devnull
   condition = ${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/aliases}{true}{false}}
 
-
-
 ######################################################################
 #                      TRANSPORTS CONFIGURATION                      #
 ######################################################################

+ 0 - 2
install/deb/exim/exim4.conf.template

@@ -364,8 +364,6 @@ terminate_alias:
   transport = devnull
   condition = ${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/$domain/aliases}{true}{false}}
 
-
-
 ######################################################################
 #                      TRANSPORTS CONFIGURATION                      #
 ######################################################################

+ 15 - 0
install/upgrade/versions/1.8.0.sh

@@ -264,4 +264,19 @@ if [ "$MAIL_SYSTEM" = "exim4" ]; then
 			chown root:Debian-exim /etc/exim4/srs.conf
 		fi
 	fi
+
+	exim_version=$(exim4 --version | head -1 | awk '{print $3}' | cut -f -2 -d .)
+	# if Exim version > 4.95 or greater!
+	if version_ge "$exim_version" "4.95"; then
+		if [ -z "$(grep -e 'condition =  \${lookup{\$local_part@\$domain}lsearch{/etc/exim4/domains/\${lookup{\$domain}dsearch{/etc/exim4/domains/}}/aliases}{false}{true}}' /etc/exim4/exim4.conf.template)" ]; then
+			for line in $(sed -n '/redirect_router = dnslookup/=' /etc/exim4/exim4.conf.template); do
+				testline=$((line - 1))
+				newline=$((line + 1))
+				if [ "$(awk NR==$testline /etc/exim4/exim4.conf.template)" = "  file_transport = local_delivery" ]; then
+					# Add new line
+					sed -i "$newline i \ \ condition = \${lookup{\$local_part@\$domain}lsearch{/etc/exim4/domains/\${lookup{\$domain}dsearch{/etc/exim4/domains/}}/aliases}{false}{true}}" /etc/exim4/exim4.conf.template
+				fi
+			done
+		fi
+	fi
 fi