“Smtpエラー:サーバーへの接続に失敗しました”-原因と修正

最近では、メールを送信するオプションは、任意のwebアプリ

WordPress、Drupalなどのようなとても人気のあるアプリケーション。 メールを送信するための”PHPMailer”と呼ばれるメールプログラムを含めます。

PHPMailerを設定する手順は、多くのウェブサイトの所有者にとって直感的ではないかもしれませんし、設定のミスは、多くの場合、”Smtpエラー:サーバーへの接続に失敗

私たちのサポートサービスの一環として、ウェブサイトの所有者が技術的な問題を解決するのを助けます。 そして、PHPMailerに関連するメールの問題は、私たちが頻繁に見るエラーです。

この記事では、”Smtpエラー:接続に失敗しました”の主な理由とそれらを修正する方法について説明します。

“Smtpエラー:サーバーへの接続に失敗しました”とは何ですか?

スパマーは、リモートサーバーに直接接続してスパムメールを送信するphpスクリプトを使用することがよくあります。

これを守るために、多くのWebホスティングプロバイダは、webサイトから外部メールサーバーへの直接接続をブロ

このようなサーバーでは、Webサイトからのメールは、OutlookやWindowsメールの仕組みと同じように、独自のメールサーバー(SMTPサーバー)ポートを介してのみ送信できます。

PHPMailerは、メールクライアントのように動作し、SMTPサーバー経由でメールを送信するのに役立つメールアプリケーションです。

しかし、PHPMailerは箱から出して動作しません。 サーバー上のファイアウォールの制限、間違ったメールサーバー名、ポートなどのために失敗する可能性があります。 そして、エラーが表示されます:

“Smtpエラー:サーバーへの接続に失敗しました”

そして、メールサーバーからの応答に応じて、このエラーの2つのバリエーションを見ました :SMTPエラーの原因:サーバーへの接続に失敗しましたか?

ここでは、”SMTPエラー:サーバーへの接続に失敗しました”の主な理由について説明しましょう。

サーバー上のSMTPの制限。

サーバーは、リモートサーバーに直接接続してメールを送信できるプログラムを制限します。 通常、メールサーバー、rootユーザーなどのみです。 SMTP接続を許可します。

たとえば、CPanelサーバーは、「SMTP制限」オプションを使用して外部SMTPサーバーへのアクセスをブロックします。

この制限により、PHPMailerから外部メールサーバーへの接続は機能しません。 接続はしばらく待機し、最終的に次のエラーで終了します:

2018-10-12 04:12:37 SMTP ERROR: Failed to connect to server: Connection timed out (110)SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/TroubleshootingOops! Something went wrong and we couldn't send your message.Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

サーバー上のファイアウォールの制限

メールサーバーは、特定のファイアウォールポリシーに基づいて接続を許可または拒否します。

すべてのメールサーバーは、デフォルトのメールポート25からの接続を許可します。 Bu、t他の郵便港は465、587等を好みます。 多くのサーバーでは開かれません。

メールポートが制限されているサーバーで、webサイトの所有者がポート465で外部smtpサーバーを使用してメールを送信しようとすると、エラーになります:

2018-08-28 10:33:12 Connection: Failed to connect to server. Error number 2. "Error notice: stream_socket_client(): unable to connect to ssl://mail.xyz.com:465 (Connection refused)2018-08-28 10:33:12 SMTP ERROR: Failed to connect to server: Connection refused (111)

ここで、この「接続が拒否されました」エラーは、メールサーバーの送信がポート465での送信接続を拒否し、リモートメールサーバーに接続できないことを意味します。

PHPMailerの設定が正しくありません

このSMTPエラーは、PHPMailerの設定でメールサーバー名が誤って設定されている場合にも発生する可能性があります(追加の空白 次に、webフォームは無効な名前に接続しようとし、失敗します。

DNS障害

PHPMailerが正常に動作するためには、設定で指定されたメールサーバーに適切なdnsレコードがある必要があります。 サーバー上でdnsが機能しない場合、サーバーからの検索で間違ったIPアドレスが表示されるか、メールサーバーのIPアドレスが表示されません。 繰り返しますが、SMTPエラーでメールが失敗する原因となります。

SMTPエラーを修正する方法:サーバーへの接続に失敗しました

メールがPHPMailerで動作するためには、送受信サーバーの両方が接続を受け入れる必要があります。

私たちのサポートエンジニアは、主にメールサーバー間の接続をチェックし、それが着信ブロックか発信ブロックかを見つけます。

次に、メールエラーを修正するために、以下を含むサーバー上で変更を行います:

  1. サーバー上のファイアウォールルールを変更して、465などのポートでの送信接続を許可します。
  2. サーバーのSMTP制限を変更します。 次に、送信SMTP接続を行うことができるユーザーのリストに特定のwebサイトユーザーを追加します。
  3. ホスト、ポートなどのPHPMailer設定を編集します。
  4. メールサーバーのDNS解決を修正しました。

結論

“SMTPエラー:サーバーへの接続に失敗しました”は、主にメールサーバーの接続の問題、間違ったポート設定などが原因で発生します。 ここでは、サポートエンジニアがサーバーによく見られる原因と、それらを修正する方法について説明しました。

Leave a Reply