web-dev-qa-db-ja.com

「PHPエラー:認証できませんでした」PHPMailer

Gmail経由でメールを送信するためのシンプルなスクリプトでPHPMailerを使用していますが、「不明なエラー」が表示されます(少なくとも私にとっては!):

SMTPエラー:認証できませんでした。エラー:SMTPエラー:認証できませんでした。

SMTPサーバーエラー:5.7.1ユーザー名とパスワードは受け入れられません。 535 5.7.1で詳細をご覧ください http://mail.google.com/support/bin/answer.py?answer=14257 p38sm2467302ybk.16

SSL/TLS接続用のOpenSSLの構成について読んだことがあります。 ApacheおよびPHPは適切に構成されています(OpenSSL拡張がPHPで実行され、mod_sslがApache 2.2.16で実行されている)。

これはPHPスクリプトです。

 <?php
  require_once ("PHPMailer\class.phpmailer.php");
  $Correo = new PHPMailer();
  $Correo->IsSMTP();
  $Correo->SMTPAuth = true;
  $Correo->SMTPSecure = "tls";
  $Correo->Host = "smtp.gmail.com";
  $Correo->Port = 587;
  $Correo->UserName = "[email protected]";
  $Correo->Password = "gmailpassword";
  $Correo->SetFrom('[email protected]','De Yo');
  $Correo->FromName = "From";
  $Correo->AddAddress("[email protected]");
  $Correo->Subject = "Prueba con PHPMailer";
  $Correo->Body = "<H3>Bienvenido! Esto Funciona!</H3>";
  $Correo->IsHTML (true);
  if (!$Correo->Send())
  {
    echo "Error: $Correo->ErrorInfo";
  }
  else
  {
    echo "Message Sent!";
  }
?>

ユーザー名とパスワードは問題ありません。Thunderbirdでも問題なく試しました。 SSL認証とポート465も使用しましたが、同じエラーが発生しました。

47

代わりにこれを試してください:

$ Correo-> ユーザー名 = "[email protected]";

私はそれをテストし、他の変更なしで完全に機能しました

24
malletjo

この問題が発生しました。動作させるには、 myaccount.google.com -> "サインインとセキュリティ"-> "アカウントにアクセスできるアプリ"に移動し、 "安全性の低いアプリを許可する"を " ON」(ページの下部付近)。

enter image description here

62
cwd

これはGMailの問題です

このGoogleヘルプを読む( https://support.google.com/mail/answer/14257?p=client_login&rd=1

  1. Webブラウザを開き、 http://mail.google.com/mail でGmailにサインインします。 Wordの確認要求が表示された場合は、歪んだ画像に文字を入力して、サインインを完了します。
  2. ブラウザを閉じて、メールクライアントでメッセージに再度アクセスしてみてください。
  3. それでも問題が解決しない場合は、 http://www.google.com/accounts/DisplayUnlockCaptcha にアクセスして、Gmailのユーザー名とパスワードでログインしてください。必要に応じて、歪んだ画像に文字を入力します。
  4. 続行をクリックします。
  5. メールクライアントを再起動して、メールクライアントのメッセージに再度アクセスしてみてください。

SMTP Error: Could not authenticate

Gmail issue

21
IRvanFauziE

同じエラーを受け取りましたが、私の場合はパスワードでした。私のパスワードには特殊文字が含まれており、特殊文字をエスケープせずにパスワードを入力すると、エラーが表示され続けます。例:$mail->Password = " por$ch3";は有効ですが、上記のコードでは機能しません。解決策は次のとおりです。$mail->Password = "por\$ch3";パスワード内のドル記号の前に置いたバックスラッシュに注意してください。特殊文字を使用したパスワードを持っている場合、それは動作するはずです

8
Bubba

パスワードにパーセント記号が含まれているため、このエラーを受け取りました。

3
svandragt

私にとっては、パスワードフィールドに特殊文字があり、それを$ mail-> Password = "por $ ch3"のように配置しました。これは、Gmail smptサーバーでは機能しますが、その他では機能しません。だから私は二重引用符を一重引用符に変更しただけでうまくいきます。 $ mail-> Password = 'por $ ch3';

3
Rikin Adhyapak

それでも同じエラーメッセージで、メールの送信中にエラーが発生する場合。これを試して:

$mail->SMTPSecure = 'tls';
$mail->Host = 'smtp.gmail.com';

行の直前:

$send = $mail->Send();

または、他の意味で、Send()関数を呼び出す前。

テスト済みで動作中。

2
JackSparrow

私は同じ問題を抱えており、Gmailの設定(安全性の低いアプリへのアクセスなど)を含むすべてのヒントを運が悪かった。しかし、最後にパスワードを何か別のものに変更すると、何らかの理由で機能しました!参考までに、初期パスワードには特殊文字がありませんでした。

2
Ehsan

[解決済み]。 WordpressでWP-Mail-SMTPプラグインを設定するときに同じエラーが発生しました。

この問題は、設定とログイン資格情報を「トリプルチェック」し、ブラウザを使用して手動でログインできる場合でも続きます。

これを修正するために実行できる手順のリストがあります。

  1. 使用するGmailアカウントの新しいパスワードを作成します
  2. Googleセキュリティ設定 で安全性の低いアプリを有効にします
  3. Display Unlock Captcha page を使用して、Gmailにサインインする許可をアプリまたはWebサイトに付与します。 Continueをクリックするか、指示に従います。
  4. アプリまたはWebサイトを使用してサインインします。私のために働くSMTP設定は1)SMTPホスト:smtp.gmail.com 2)SMTPポート:587 3)暗号化:TLS 4)認証:SMTP認証5)ユーザー名:example @ gmail.com 6)パスワード:examplesecret
2
Red

SMTPエラー:認証できませんでした同じ問題が発生しました。次のトラブルシューティング手順が役に立ちました。

  • Gmailアカウントで2要素認証をオフにしました。
  • 安全性の低いアプリにGmailアカウントへのアクセスを許可しました。動作させるには、myaccount.google.com-> Sign-in & security-> Apps with account accessに移動し、Allow less secure appsONに変更する必要がありました(ページの下部にあります) )。
  • このステップで、ユーザーを登録しようとすると、同じエラーが発生します。 Googleは、誰かにパスワードがあり、ログインがブロックされたという警告メッセージを送信します。
  • その後、Gmailはオプションを提供します。アクティビティが自分のものかどうかをクリックします。アクティビティが自分のものだったオプションをクリックします。
  • もう一度登録してください。これで動作するはずです。
0
Joshua Mutinda

認証にも同じ問題がありました。修正は、2段階認証を設定し、デバイスのアプリケーション固有のパスワードを作成することでした(問題が私の場合と同じ場合、デバイスをブロックするためのエラーメッセージがアカウント設定に表示されます->「通知とアラート」)

0
anu

私は同じ問題を抱えており、すべてのヒントを運が悪かった。最後に、パスワードを何か別のものに変更すると、何らかの理由で機能しました! (初期パスワードまたは新しいパスワードには特殊文字がありませんでした)

0
user3809638

コードに問題はありません。

以下の2つの簡単な手順に従って、phpmailerからメールを送信します。

  • 有効にした場合は、Googleアカウントの2段階認証プロセス設定を無効にする必要があります。

  • ON安全性の低いアプリへのアクセスを許可します。

0
Ravindra Miyani

もう1つの投稿は問題を解決するために正しいものですが、2段階認証が有効になっている場合の方法については説明していません。安全性の低いアプリを許可するオプションは利用できません。これを行う方法に対する回答を次に示します。

a. Go to the URL of `https://myaccount.google.com/` and click `Sing-in and security`

b. Click on the app password. 

enter image description here

You will reach a page like this,

enter image description here

c. Create name of your app and generate a password for the respective app.  

d. Use that password acquired here inside the app.

これで問題が解決するはずです。

0
Arefe

これはselinuxの問題でした。/etc/selinux/configファイルSELINUX=permissive(以前はSELINUX = enforcingでした)の以下の部分を更新しました。その後、再起動するだけでシステムを再起動します。これで、メールは簡単に送信されます。設定

From Email Address : [[email protected]]
From Name : [your domain name]
SMTP Host   : smtp.gmail.com
Type of Encryption : SSL
SMTP Port : 465
SMTP Authentication  : YES
Username : [your mail id]
Password : [your password]
0
Jathin Prasad