Riscriverò la tua domanda diventare:
Come posso usare diversi _header_checks per smtpd (porta 25) e invio (porta 587)?
Questo problema canonico può essere diviso in diverse condizioni
- Voglio disattivare header_checks per uno di smtpd o invio.
- Voglio eseguire diversi header_checks per smtpd e invio.
1. Voglio disattivare header_checks per uno di smtpd o invio.
Per l'esempio presumo che tu voglia disattivare header_checks per l'invio (email in uscita) .
Soluzione 1: metodo receive_override_options
È possibile utilizzare il parametro postfix chiamato receive_override_options . Con il parametro è possibile ignorare l'opzione header_check globale, quindi il filtro non verrà eseguito. # main.cf header_checks = pcre: / path / to / header_checks
#master.cf
submission inet n - n - - smtpd
-o receive_override_options=no_header_body_checks
Avvertenze: questo disattiverà TUTTI i _checker_checks e body_checks definiti in man 5 header_checks . Per il controllo completo su quale parametro verrà disattivato, vedere la Soluzione 2.
Soluzione 2: metodo di servizio di pulizia multipla
Possiamo eseguire la tecnica del servizio di pulizia multipla per il tuo problema, come è *_header_checks
stato eseguito dal servizio di pulizia . Puoi vedere l'esempio di questa configurazione nel tutorial di amavisd-new .
Il parametro magico per questa configurazione è cleanup_service_name . Con questo parametro, possiamo usare diversi servizi di pulizia per ogni processo smtpd. Per prima cosa definiamo un servizio di pulizia aggiuntivo (chiamato no-headerchecks) in master.cf
no-headerchecks unix n - n - 0 cleanup
-o mime_header_checks=
In questa pulizia, definiamo mime_header_checks vuoti per disabilitare il filtro. L'ultimo passaggio è dire al servizio di invio di utilizzare i nostri controlli senza intestazione
submission inet n - n - - smtpd
-o cleanup_service_name=no-headerchecks
2. Voglio eseguire diversi header_checks per smtpd e invio.
Per questo problema è possibile utilizzare più metodi di servizio di pulizia come descritto sopra.
Per prima cosa definiamo un ulteriore servizio di pulizia (chiamato second-headerchecks) in master.cf
second-headerchecks unix n - n - 0 cleanup
-o mime_header_checks=pcre:/path/to/2ndheaderchecks
In questa pulizia, definiamo il secondo mime_header_checks su un'altra tabella PCRE. L'ultimo passaggio è dire al servizio di invio di utilizzare i nostri controlli di seconda intestazione
submission inet n - n - - smtpd
-o cleanup_service_name=second-headerchecks
Nota:
Il tuo caso sembra simile a questa domanda . Sfortunatamente la risposta di Laurentiu Roescu funziona solo se si desidera abilitare header_checks per la posta in uscita che utilizza smtp come trasporto. La buona notizia è che la sua prima frase sul cleanup
demone ci dà un'idea della seconda soluzione.
È possibile applicare più metodi del servizio di pulizia se si desidera definire diversi header_checks, body_checks e altri parametri in man 5 header_checks
.