web-dev-qa-db-ja.com

PHPMailerはSMTPホストに接続できませんでした

次のエラーが発生します:

SMTP->エラー:サーバーへの接続に失敗しました:php_network_getaddresses:getaddrinfoが失敗しました:そのようなホストは不明です。 (0)SMTPエラー:SMTPホストに接続できませんでした。このメールの送信に問題がありました。

これは私がこれに従った私の設定ファイルの設定です PHPMailerチュートリアル

// Configuration settings for My Site

// Email Settings
$site['from_name'] = 'Manish Dekavadiya'; // from email name
$site['from_email'] = 'manish@<my-domain>.com'; // from email address

// Just in case we need to relay to a different server,
// provide an option to use external mail server.
$site['smtp_mode'] = 'enabled'; // enabled or disabled
$site['smtp_Host'] = "smtp.<my-domain>.com";
$site['smtp_port'] = 587;
$site['smtp_username'] = "manish@<my-domain>.com";
$site['smtp_password']="<password>";

チュートリアルで次のように述べられているように、メーラークラスと拡張クラスを使用しました。

/*****sendmail.php **** /

// Grab our config settings
require_once($_SERVER['DOCUMENT_ROOT'].'/config.php');

// Grab the FreakMailer class
//echo $_SERVER['DOCUMENT_ROOT'];
require_once($_SERVER['DOCUMENT_ROOT'].'/lib/MailClass.inc');

// instantiate the class
$mailer = new FreakMailer();

// Set the subject
$mailer->Subject = 'This is a test';
 $mailer->SMTPDebug = 1;
// Body
$mailer->Body = 'This is a test of my mail system!';

// Add an address to send to.
$mailer->AddAddress('[email protected]', 'Manish Dekavadiya');

if(!$mailer->Send())
{
    echo 'There was a problem sending this mail!';
}
else
{
    echo 'Mail sent!';
}
$mailer->ClearAddresses();
$mailer->ClearAttachments();

また、phpmailer docs @ examples/test_smtp_gmail_basic.phpにある例を試したときに、別のエラーが発生しました

SMTP->エラー:サーバーへの接続に失敗しました:php_network_getaddresses:getaddrinfoが失敗しました:そのようなホストは不明です。 (0)SMTPエラー:SMTPホストに接続できませんでした。このメールの送信に問題がありました。

したがって、設定または構成エラーがあるはずです。コードエラーは発生しません。

7
maniclorn

SMTPが設定されていますか?もしそうなら、ポート587でsmtp..comをリッスンするように構成されていますか?サーバーが自分でセットアップされていない場合、代わりにmail..comをリッスンすることも珍しくありません。また、ポート25に接続して、デフォルトのSMTPポートをリッスンするように構成されているかどうかを確認してください。

エラーメッセージは、いずれにせよ非常に明確です。ホストは接続の試行に応答していません。その理由は、サーバーとPHPの両方での構成ミス、ファイアウォールの問題、ルーティングの問題、DNSの問題などである可能性があります。

7
inquam

私がこれと同じエラーと戦っていたので、うまくいけば、これはそこにいる他の誰かを助けるでしょう。最初に私は得ていました。 connect()ができないというエラーが発生していました。次に、デバッグをオンにして、あなたが言及したエラーを受け取りました。私のために働いた解決策は、smtp..comをIPアドレスに変更することでした。

$mail->Host = 'smtp.whateverDomain.com';

$mail->Host = 'theIPaddress';

デバッグ

$mail->SMTPDebug  = 1; // enables SMTP debug information (for testing)
                           // 1 = errors and messages
                           // 2 = messages only

私はしばらく前にこの問題を抱えていました、すべてがうまくチェックアウトしましたが、問題は解決しませんでした。 httpd.serviceを再起動すると解決しました。

2
user3790024