Egy magyarországi ISP-nél még működik az exim „Sender Verification Callout” funkció. Ez gyakorlatban annyit jelent, hogy a rajta kersztül küldött leveleknél csak akkor fogadja el az SMTP szerverük a levelet, ha előtte az felveszi a címzett domain SMTP kiszolgálójával a kapcsolatot, és egy „fake” e-mail-t próbál küldeni.
Persze vannak oldalak (pl. itt ), amik arra figyelmeztetnek, hogy ez mennyire hülyeség, de sajnos még mindig vannak ilyen szerverek, ahol ez be van kapcsolva… 🙁
Ha ilyen szerver akar nálunk ellenőrizni, akkor lehet hogy greylist-re fut, ami simán elzavarja… Na innentől nem fog levél érkezni ezen a szerveren keresztül…
(Az előzményket megtárgyaltuk a hup.hu-n 😀 )
Megoldás:
1. Kell egy postfix policy szkript. (Legyen a példa kedvéért az /etc/postfix/sender_verification_callout_policy útvonalon. Tulajdonos: nobody. Legyen futtatható.)
#!/bin/bash while IFS='=' read var val do case "x${var}" in "xhelo_name") helo_name=${val};; "xprotocol_state") protocol_state=${val};; "xsender") sender=${val};; "xrecipient") recipient=${val};; "x") if [ -z ${sender} ] then if then if [ "${protocol_state}" == "RCPT" ] then /bin/echo -e 'action=ok\n' else /bin/echo -e 'action=reject Sender Verification abuse\n' fi else /bin/echo -e 'action=dunno\n' fi else /bin/echo -e 'action=dunno\n' fi exit 0;; *) ;; esac done exit 0
2. Kapcsoljuk be a master.cf-ben:
svc_policy unix - n n - - spawn user=nobody argv=/etc/postfix/sender_verification_callout_policy
3. A main.cf-ben két helyen aktiváljuk:
a. Az smtpd_recipient_restrictions részben:
smtpd_recipient_restrictions= ... check_policy_service unix:private/svc_policy, #postgrey check_policy_service inet:127.0.0.1:10023, ... permit
b. Az smtpd_data_restrictions részben:
smtpd_data_restrictions= ... check_policy_service unix:private/svc_policy, permit