@@ -152,10 +152,8 @@ function update($event_name, $data) {
152152 }
153153
154154 if ($ mail_config ['reject_sender_login_mismatch ' ] == 'y ' ) {
155- reset ($ new_options ); $ i = 0 ;
156- // insert after check_sender_access but before permit_...
157- while (isset ($ new_options [$ i ]) && substr ($ new_options [$ i ], 0 , 19 ) == 'check_sender_access ' ) ++$ i ;
158- array_splice ($ new_options , $ i , 0 , array ('reject_sender_login_mismatch ' ));
155+ reset ($ new_options );
156+ array_splice ($ new_options , 0 , 0 , array ('reject_sender_login_mismatch ' ));
159157 }
160158 $ app ->system ->exec_safe ("postconf -e ? " , 'smtpd_sender_restrictions = ' .implode (", " , $ new_options ));
161159 }
@@ -256,7 +254,7 @@ function update($event_name, $data) {
256254 exec ("postconf -e 'smtpd_recipient_restrictions = " .implode (", " , $ new_options )."' " );
257255
258256 if ($ mail_config ['content_filter ' ] != $ old_ini_data ['mail ' ]['content_filter ' ]) {
259- $ rslm = ($ mail_config ['reject_sender_login_mismatch ' ]) ? ", reject_sender_login_mismatch " : "" ;
257+ $ rslm = ($ mail_config ['reject_sender_login_mismatch ' ] == ' y ' ) ? "reject_sender_login_mismatch, " : "" ;
260258
261259 if ($ mail_config ['content_filter ' ] == 'rspamd ' ){
262260 exec ("postconf -X 'receive_override_options' " );
@@ -267,8 +265,8 @@ function update($event_name, $data) {
267265 exec ("postconf -e 'milter_protocol = 6' " );
268266 exec ("postconf -e 'milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}' " );
269267 exec ("postconf -e 'milter_default_action = accept' " );
270-
271- exec ("postconf -e 'smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf $ {rslm} , permit_mynetworks, permit_sasl_authenticated ' " );
268+
269+ exec ("postconf -e 'smtpd_sender_restrictions = $ {rslm} permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf' " );
272270
273271 $ new_options = array ();
274272 $ options = preg_split ("/,\s*/ " , exec ("postconf -h smtpd_recipient_restrictions " ));
@@ -304,8 +302,9 @@ function update($event_name, $data) {
304302
305303 exec ("postconf -e 'receive_override_options = no_address_mappings' " );
306304 exec ("postconf -e 'content_filter = " . ($ configure_lmtp ? "lmtp " : "amavis " ) . ":[127.0.0.1]:10024' " );
307-
308- exec ("postconf -e 'smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf, check_sender_access regexp:/etc/postfix/tag_as_originating.re, permit_mynetworks, permit_sasl_authenticated, check_sender_access regexp:/etc/postfix/tag_as_foreign.re' " );
305+
306+ // fixme: should read this from conf templates
307+ exec ("postconf -e 'smtpd_sender_restrictions = $ {rslm} check_sender_access regexp:/etc/postfix/tag_as_originating.re, permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:/etc/postfix/tag_as_foreign.re, check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf' " );
309308 }
310309 }
311310
0 commit comments