Řešení 1:
Za předpokladu, že si chyba stěžuje na data HELO/EHLO, chcete použít volbu helo_data pro přenos smtp. Výchozí hodnota je $primary_hostname.
remote_smtp:
driver = smtp
helo_data = host.example.com
Více informací je k dispozici v manuálu.
Pokud tomu tak není, pravděpodobně budete chtít zahrnout několik příkladů zpráv o odmítnutí. Pouze třímístný kód a řetězec po něm.
Řešení 2:
Příkaz
sudo dpkg-reconfigure exim4-config
by vás měl vyzvat k zadání primárního názvu hostitele.
Řešení 3:
Na Debianu (Lenny) jsem zjistil, že jste nastavili název hostitele v /etc/hostname
ale že to není rozpoznáno až do restartu.
$ hostname newhostname
nastaví to hned (ale při restartu se ztratí, takže musíte udělat dva).
Zdá se, že exim4 hlásí totéž jako uname -n
a zjistil jsem, že je to užitečný způsob testování.
Řešení 4:
Který název hostitele odesílá exim?
Jméno HELO lze najít v protokolech exim4. Zastavte démona exim4 a poté jej restartujte ručně s povoleným laděním:
/usr/sbin/exim4 -bd -d+all 2>&1 | egrep 'HELO|EHLO'
(2>&1|egrep 'HELO|EHLO'
část je volitelná, pouze přesměrovává stderr na stdout a poté protokol zprostředkuje na egrep
, který bude filtrovat vše kromě řádků obsahujících HELO nebo EHLO).
Pošlete e-mail a měl by tam být jeden nebo dva řádky v následujícím tvaru:
SMTP>> EHLO foobar.example.com
Název HELO je foobar.example.com
.
Existuje také několik užitečných online kontrolních nástrojů, které tyto informace poskytují (a mnoho užitečných dalších), např. :
- https://www.mail-tester.com (pozor, pouze 3 bezplatné kontroly e-mailů denně);
- [email protected] (zdarma);
- [email protected] (většina zpětné vazby není zdarma, ale pro tento účel ano).
Jak to změním?
Místo úpravy transportního souboru, jak navrhuje David, bych raději použil definice konstant exim4 (?) a nastavil název v /etc/exim4/conf.d/main/00_local_settings
(v rozdělené konfiguraci), např. :
REMOTE_SMTP_HELO_DATA=$sender_address_domain
Nezapomeňte spustit update-exim4.conf
před restartováním exim4.
Nastavil jsem primární_hostitel […] v /etc/exim4/exim4.conf.template
Jak zmínil David, asi to není nejlepší nápad. V konfiguraci rozdělení můžete nastavit primární název hostitele přidáním
MAIN_HARDCODE_PRIMARY_HOSTNAME = subdomain.example.com
v /etc/exim4/conf.d/main/00_local_settings
. Zdá se, že by to bylo PRIMARY_HOST_NAME
v monolitické konfiguraci exim4.