ホームページ > バックエンド開発 > PHPチュートリアル > SMTP エラー: SMTP ホストに接続できませんでした。

SMTP エラー: SMTP ホストに接続できませんでした。

WBOY
リリース: 2016-06-23 14:04:02
オリジナル
1823 人が閲覧しました

Web ページを使用すると、正常に実行され、送信できます。コマンドを使用して php ファイルを実行すると、次のようにエラーが発生します。

function sendmail($setEmail, $setName, $body, $subject) {	require_once("PHPMail/phpmailer.php");	$mail = new PHPMailer ( true ); // the true param means it will throw exceptions on errors, which we need to catch	$mail->IsSMTP (); // telling the class to use SMTP	try {		$mail->SMTPAuth = true; // enable SMTP authentication		$mail->SMTPSecure = SBT_SSL; // sets the prefix to the servier		$mail->Host = SBT_SMTP_HOST; // sets GMAIL as the SMTP server		$mail->Port = SBT_SMTP_PORT; // set the SMTP port for the GMAIL server		$mail->Username = SBT_SMTP_USER; // GMAIL username		$mail->Password = SBT_SMTP_PASS; // GMAIL password		$mail->AddReplyTo ( SBT_MAIL_FROM, SBT_MAIL_FROM_NAME );		$mail->AddAddress ( $setEmail, $setName );		$mail->SetFrom (SBT_SMTP_USER,SBT_SMTP_USER); //sender name		$mail->Subject = $subject;				$mail->MsgHTML ( $body );				if (! $mail->Send ()) {//(这边没报错)			echo "Message could not be sent. <p>";			echo "Mailer Error: " . $mail->ErrorInfo;			exit ();		} 	} catch ( phpmailerException $e ) {		echo $e->errorMessage (); //Pretty error messages from PHPMailer(就是这边输出错误的)	} catch ( Exception $e ) {		echo $e->getMessage (); //Boring error messages from anything else!	}}
ログイン後にコピー

理由を尋ねました。目的は、Linux のスケジュールされたタスクを使用して PHP ファイルを実行することです


ディスカッションに返信 (解決策)

Gmail のメールを使用しています、465

$mail->Host ="smtp.gmail.com"; $mail->Port =465
ログイン後にコピー

エラー コードは何ですか?

SMTP エラー: SMTP ホストに接続できませんでした。それが問題です

スクリーンショットを撮りましたが、アップロードできるかわかりません。試してみます [img=http://hi.csdn .net/space-48606-do- album-picid-730173-goto-down.html][/img]

今回は良いですね!

コマンドラインを使用すると、この拡張子とその拡張子で問題が発生すると推定されます。

opensll は拡張されていますか?はは、有効にする必要があります。有効にしないと、Web ページが正常に送信されません

このファイルは独立して実行できると確信していますか?

テストしたところ、Web ページは正常に動作しますが、コマンドラインは動作しません。拡張子 php_pdo_mysql.dll が見つかりません

もちろん、単独で実行することはできません。メールを送信しない場合は、テキストを出力してください。問題ありません

拡張子

php --ini を開いて、使用されている ini が Apache モジュールとして実行されているものと一致しているかどうかを確認します。

うまくいかない場合は、Linux 環境をインストールしてテストします。
この問題は php.ini が正しく設定されていないことであるとインターネットで読みました。確認したところ、SMTP が再割り当てされており、Gmail を使用していることがわかりました。

この問題は Linux では発生しません

php --ini 使用されている ini が Apache モジュールとして実行されている php と一致しているかどうかを確認してください
Tiger の頭、もっと詳しく ini ファイルを変更できますか?これでいいと思いますか?

[mail function]; For Win32 only.SMTP = localhostsmtp_port = 25; For Win32 only.sendmail_from = me@example.com; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").;sendmail_path = "/usr/sbin/sendmail -t -i"; Force the addition of the specified parameters to be passed as extra parameters; to the sendmail binary. These parameters will always replace the value of; the 5th parameter to mail(), even in safe mode.;mail.force_extra_parameters =
ログイン後にコピー

11階のfoolbirdflyfirstからの返信を引用します:

php --ini 使用されているiniがApacheモジュールとして実行されているphpと一致しているかどうかを確認してください

Tiger head、もっと詳しく教えていただけますか。 iniファイルを変更しますか?これでいいと思いますか?
PHP コード

[メール関数]
; Win32 のみ
SMTP = localhost
smtp_port = 25

; Win32 の場合...
そうですね、私は php コマンドについて話していました。 -ini、cli を参照してください。php で実行されている php と apache モジュールは、ini ファイルを共有していますか? phpcli が個別にインストールされている場合、ini ファイルが付属していることがあります

この問題は Linux では発生しません

兄さん、そうですか。 Linuxに精通していますか?次に、私と同じように、require_once("PHPMail/phpmailer.php"); phpmailer をロードすることは可能ですか? Linux は phpmailer プラグインを受け入れないのが残念です

Tiger Head さん、見てみるのを手伝ってください!

C:\wamp\bin\php\php5.2.6>php --iniConfiguration FILE (php.ini) Path: C:\WINDOWSLoaded Configuration FILE:         C:\wamp\bin\php\php5.2.6\php.iniScan FOR additional .ini files IN: (NONE)Additional .ini files parsed:      (NONE)
ログイン後にコピー

不可能です。$mail->IsSMTP (); これは、SMTP 送信が設定されていることを示します。

ここでの主な問題は、ソケットが SMTP サーバーに接続できない理由を調べることです。
ファイアウォールも可能です。

タイガーヘッド、あなたの言う通りです。矛盾しています。どうすれば変更できますか?

ロードされた設定ファイル: C:wampbinphpphp5.2.6php.ini

この php.ini は、現在実行している PHP.INI ではありません

もう一度確認したい場合は、Wamp 環境は ini ファイルを共有する必要があります。ページ phpinfo() を出力して、使用されている ini ファイルがこれと一致しているかどうかを確認してください。

コマンド: telnet smtp.gmail.com 465、接続が成功すると確信していますか?

タイガー ヘッド、そのとおりです。一貫性がありません。どのように変更しますか?

いいですね
次に、php -c コマンドを使用して、正しい ini パスを導入します

php -c ini路径 php文件
ログイン後にコピー

php -help でコマンドパラメータを確認できます


見る方法を学びましょう

ファイアウォールを確認し、画像添付ファイルを送信するためのコードを確認してください

wamp 環境は ini ファイルを共有する必要があります。もう一度確認したい場合は、php Web ページで phpinfo() を出力して、使用されている ini ファイルがこれと一致しているかどうかを確認してください。

コマンド: telnet smtp.gmail.com 465、接続できることを確認してください 成功しましたか?
Telnet smtp.gmail.com 465 に接続できないので、どのメール サーバーを使用すればよいですか?

Telnet が機能しません。ファイアウォールがアクセスを禁止している可能性があります

皆さんありがとうございます、最初はファイアウォールの問題、360 ファイアウォールをオフにするのを忘れました、次に ini の問題です。

RXPY2007 へ
php.ini の問題は何ですか? 明確に説明してください。私も Linux 環境でこの問題に遭遇しました

私の勝利でも問題が発生しました。環境

エンタープライズ バージョンは gmail に登録されていますか?

[Quote=14 階の rxpy2007 の返信からの引用:]

11 階の Foolbirdflyfirst の返信からの引用:

php --ini を使用して、ini が Apache モジュールとして実行されているかどうかを確認します。 PHPも同じです

Tiger head、詳細を教えてiniファイルを変更できますか?これでいいと思いますか?
PHP コード

[メール関数]
; Win32 のみ
SMTP = localhost
smtp_port = 25

; Win32 の場合...
そうですね、私は php コマンドについて話していました。 -ini、cli を参照してください。Apache モジュールで実行される php と、Apache モジュールで実行される php は、ini ファイルを共有しますか? phpcli が個別にインストールされている場合、ini ファイルが付属することがあります
php の使用方法を教えてください。イニ

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート