私のメールサーバーがスパムのブラックリストの原因になっています。 postfixを再設定しました。その後、私の顧客はメールを送信できないこのエラーを受け取ります。
404 4.5.2 <PLLAMNAZIFE>: Helo command rejected: need fully-qualified hostname
Mail.log:
postfix/smtpd[9853]: NOQUEUE: reject: RCPT from unknown[xx.xx.xx.xx]:
404 4.5.2 <PLLAMNAZIFE>: Helo command rejected: need fully-qualified hostname;
from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<PLLAMNAZIFE>
私のmain.cfで:
# rules restrictions
smtpd_client_restrictions =
permit_sasl_authenticated
smtpd_helo_restrictions =
permit_mynetworks,
reject_non_fqdn_helo_hostname,
reject_invalid_helo_hostname,
permit
smtpd_sender_restrictions =
smtpd_recipient_restrictions =
permit_sasl_authenticated,
reject_unauth_pipelining,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
permit_mynetworks,
reject_unauth_destination,
reject_invalid_hostname,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_rhsbl_client blackhole.securitysage.com,
reject_rhsbl_sender blackhole.securitysage.com,
reject_rbl_client zen.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client blackholes.easynet.nl,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client proxies.blackholes.wirehub.net,
reject_rbl_client dnsbl.njabl.org
smtpd_helo_required = yes
unknown_local_recipient_reject_code = 550
disable_vrfy_command = yes
smtpd_data_restrictions = reject_unauth_pipelining
メールクライアントがHELO
/EHLO
SMTPトランザクションの一部であり、Postfixサーバーはそのようなメールを拒否するように設定されています。
多くのメールクライアントプログラムは、正しい形式の完全修飾された有効なホスト名をHELO
/EHLO
で送信しません。有料の顧客からのそのようなメールを受け入れる必要があり、顧客が使用するメールクライアントをほとんどまたはまったく制御できないため(そしてHELO
チェックはスパムのブロックにはあまり役に立たないため)、おそらく無効にするのが最善です。 HELO
チェック。
HELO
チェックを無効にするには、Postfix設定から次の2行を削除します。
reject_non_fqdn_helo_hostname,
reject_invalid_helo_hostname,
さらに良いことに、smtpd_helo_restrictions = ...
ルールとsmtpd_helo_required = yes
。
permit_sasl_authenticated
リストのルールを拒否する前にsmtpd_helo_restrictions
を挿入することで、認証済みユーザーのHELO制限をバイパスできます。
smtpd_helo_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_helo_hostname,
reject_invalid_helo_hostname,
permit
メールサーバーのホスト名変数が無効です。
myhostname
フィールドの値を/etc/postfix/main.cf
からデフォルト値からホスト名に変更してみてください(例:yourwebsite.com
またはmail.yourwebsite.com
)
これを解決するために私は年齢を取りました
CentOSサーバーを実行していて、エラーを報告するメールが返送されてきました。 "Heloコマンドが拒否されました:完全修飾ホスト名が必要です"
結局、「送信SMTP HELO [?]のリファレンス/ etc/mailhelo」を有効にしてしまいました。これは、VPSサーバーの「exim構成マネージャー」、「ドメインとIPS」の下にありました。
次に、PuTTYを使用してサーバーにリモート接続し、このコマンド「Sudo nano/etc/mailhelo」を実行しました
そのファイルで、ドメインexample.com:example.com sub.example.com:example.com example.net:example.net addon.example.net:example.net *:hostname.example.comを作成しました
( http://docs.cpanel.net/twiki/bin/view/AllDocumentation/WHMDocs/EximDifferentIps による)
メールの送信をテストしましたが、これまでのところ問題はありません
無効なホスト名でHELOを拒否したいが、クライアントがHELOでFQDNを送信しない場合でもユーザーが送信できるようにする場合は、次の行をそのままにしておくことができます。
reject_non_fqdn_helo_hostname,
reject_invalid_helo_hostname,
ただし、これらの前に次のことを確認してください。
permit_sasl_authenticated,
このようにして、ユーザーの1人が認証されると、HELOコマンドの有効性に関係なく、ユーザーはメールの送信を許可され、認証されていない接続のみがメールを中継します。明らかに、すべてのユーザーに認証を要求しますよね?)は、有効なHELO要件の対象となります。
クライアントを拒否するのは電子メールサーバーではなく、SMTPサーバーからのメッセージを拒否する外部のSMTPサーバーです。問題は、SMTPサーバーが他のサーバーと通信するときにheloメッセージでFQDN名を送信しないことです。
これは通常、パブリックIPをホストファイルに追加し、FQDNを/ etc/hostsファイルに追加することで解決できます。このような:
1.1.1.1 Host.domain.comホスト
127.0.0.2 Host.domain.comホスト
ここで、1.1.1.1は公式IPです。
私はこの問題を抱えていて、DNSがパブリックIPでフォワード/リバースの両方の方法で機能していて、/ etc/resolv.confに自分のネームサーバーしかなかったので役に立ちませんでした。ホスト名-fでも正しいものが返されました。 sendmailが実際に短いホスト名ではなくFQDNを使用するようにするには、ipとホスト名を/ etc/hostsに追加する必要がありました。
ポート25でサーバーにTelnetで接続する場合は、220行がホストだけでなくFQDNを示していることを確認してください。このような:
220 Host.domain.com ESMTP Sendmail 8.15.2/8.15.2/SuSE Linux 0.8; 2018年7月9日(月)18:19:48 +0200
hostname -f
を実行すると、ドメイン名以外が表示されました。だから私は「ホスト名-f」にドメインなしをググった。この問題を解決するには、/etc/hostname
(私はDebianを使用しています)を編集する必要があることがわかりました。その後、hostname -f
とhelo
の両方が完全修飾ホスト名を使用していました。
サーバーに「しゃっくり」がある場合があります。たとえばメール攻撃が原因です。
まず、サーバーを再起動してください。サーバーのメールを15秒後にオフにしてからオンにしてください。
メールが新しいウイルス対策定義を読み込めないことが原因で、HELOコマンドが拒否されることがあります。 Appleサーバーで使用されるAmaVisのようなものです。サーバーのメールアプリの再起動とオフ/オンにより、この問題が解決されます。乾杯。