Gmailアドレスにメールを送信しようとしていますが、このエラーが引き続き発生します。「SMTP->エラー:サーバーへの接続に失敗しました:接続がタイムアウトしました(110)SMTP Connect()failed。メッセージは送信されませんでした。メーラーエラー:SMTP接続()失敗しました。」何が問題なのでしょうか?
require 'class.phpmailer.php'; // path to the PHPMailer class
require 'class.smtp.php';
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPDebug = 2;
$mail->Mailer = "smtp";
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 587;
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "[email protected]"; // SMTP username
$mail->Password = "mypasswword"; // SMTP password
$Mail->Priority = 1;
$mail->AddAddress("[email protected]","Name");
$mail->SetFrom($visitor_email, $name);
$mail->AddReplyTo($visitor_email,$name);
$mail->Subject = "Message from Contact form";
$mail->Body = $user_message;
$mail->WordWrap = 50;
if(!$mail->Send()) {
echo 'Message was not sent.';
echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent.';
}
行を削除するかコメントアウトします
$mail->IsSMTP();
そしてそれはあなたのために働くでしょう。
私はさまざまなサイトから多くの回答をチェックして実験しましたが、上記の解決策以外の解決策はありません。
Php_openssl.dllをインストールする必要があります。wampserverを使用する場合は非常に簡単で、PHPの拡張機能を検索して適用します。
例ではこれを変更します:
//Set the hostname of the mail server
$mail->Host = 'smtp.gmail.com';
//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission 465 ssl
$mail->Port = 465;
//Set the encryption system to use - ssl (deprecated) or tls
$mail->SMTPSecure = 'ssl';
ここでGmailからのメールを受信し、ここで安全性の低いアプリケーションへのオプションを有効にすることを話しました https://www.google.com/settings/security/lesssecureapps
パスワードを変更し、常に暗号化することをお勧めします
使用する認証の種類を定義するSMTPSecure設定がなく、不要な「ssl://」でホスト設定を実行しています(PS-実行する必要がある場合、sslはポート465を超えています)代わりにssl、 ここで受け入れられた答え を参照してください。追加/変更する行は次のとおりです。
+ $mail->SMTPSecure = 'tls';
- $mail->Host = "ssl://smtp.gmail.com";
+ $mail->Host = "smtp.gmail.com";
Localhostで実行していますか? php.ini
を編集しましたか?
まだなら、これを試してください:
1。 xampp-> php-> php.iniを開きます
2。 extension=php_openssl.dll
を検索
3。イニシャルは次のようになります;extension=php_openssl.dll
4。 「;」を削除しますextension=php_openssl.dll
のようになります
5。 extension=php_openssl.dll
が見つからない場合は、extension=php_openssl.dll
という行を追加してください。
6。次に、Xamppを再起動します。
幸運を ;)
myaccount.google.com/security でGoogleアカウントにログインし、[ログイン]、[セキュリティ]の順に移動して、一番下までスクロールし、[安全性の低いアプリを許可する]オプションを有効にします。
この質問からしばらく経ちましたが、正確な問題があり、csf.confでSMTP_BLOCKを無効にすることで解決しました(ファイアウォールにCSFを使用しています)。
Csf.confを編集してSMTP_BLOCKを無効にするには、次のようにします。
###############################################################################
# SECTION:SMTP Settings
###############################################################################
# Block outgoing SMTP except for root, exim and mailman (forces scripts/users
# to use the exim/sendmail binary instead of sockets access). This replaces the
# protection as WHM > Tweak Settings > SMTP Tweaks
#
# This option uses the iptables ipt_owner/xt_owner module and must be loaded
# for it to work. It may not be available on some VPS platforms
#
# Note: Run /etc/csf/csftest.pl to check whether this option will function on
# this server
# SMTP_BLOCK = "1" --> this will cause phpmailer Connection timed out (110)
SMTP_BLOCK = "0"
誰かがあなたのアカウントにログインしようとするのはあなたであり、私はyesと答えると私に言ってGoogleからのメールを受け取ることでこの問題がありましたサーバ
以下に、PHPMailerを扱うときに検討すべきリストを示します。
extension=php_openssl.dll
PHP.iniで$mail->SMTPSecure = 'tls';
および$mail->Port = 587;
あなたはすべて元気です。 465など、システムで動作する他のSMTPポートを確認する必要があります。 Googleアカウントによる 安全性の低いアプリ へのアクセスを許可するために留意すべきもう1つのことは、同じエラーをスローします。
私は丸1日それを経験しましたが、間違っているのはポート番号だけです。ポート番号を変更しました。そしてそれは動作します。
動作させるには、myaccount.google.com->「接続済みアプリとサイト」に移動し、「安全性の低いアプリを許可する」を「オン」(ページの下部近く)にする必要がありました。
ポート:25または587(一部のプロバイダーはポート25をブロックします)
サーバーにアプリを展開した後、ポートを変更することで作業します。
$mail->Port = 25;
$mail->Port = 587;
GL
ローカルホストで機能するが、Webホストでは機能しない場合:
一部のホスティングサイト 特定の送信SMTPポートをブロックする 。受け入れられた回答に記載されている$mail->IsSMTP();
行をコメントアウトすると機能する場合がありますが、SMTP設定を無効にし、ホスティングサイトの電子メール設定を使用するだけです。
GoDaddyを使用している場合、別のSMTPを使用してメールを送信する方法はありません。 SiteGroundを使用していて、SSL暗号化タイプを使用して、ポート25および465からのみSMTPアクセスを許可していることがわかったため、ホストのドキュメントを検索してそこからアクセスします。