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