web-dev-qa-db-ja.com

PHP Swift mailer:2つの可能な認証子を使用してSMTPで認証に失敗しました

このサーバーにPHP Swift=メーラー:smtp.exchange.example.comのように)

// Load transport
$this->transport =
    Swift_SmtpTransport::newInstance(
       self::$config->hostname,
       self::$config->port
    )
    ->setUsername(self::$config->username)
    ->setPassword(self::$config->password)
    ;

// Load mailer
$this->mailer = Swift_Mailer::newInstance($this->transport);

// Initialize message
$this->message = Swift_Message::newInstance();

// From
$this->message->setFrom(self::$config->from);

// Set message etc. ...

// Send
$this->mailer->send($this->message);

奇妙なエラーが返されます:

2つの可能な認証子を使用して、ユーザー名「[email protected]」のSMTPサーバーで認証に失敗しました

Login-infoが正しいことは確かです。

24
VDVLeon

これは古いかもしれませんが、誰かがこれを通して助けを得るかもしれません。私も同じ問題に直面し、Gmailアカウントで誰かがメールクライアントまたは別のサイトを介してアカウントをハッキングしようとしているというメールを受け取りました。私が検索したところ、以下を実行することでこの問題を解決できることがわかりました。

https://accounts.google.com/UnlockCaptcha にアクセスし、他のメディア/サイトからアクセスするためにアカウントのロックを解除します。

更新:2015

また、これを試すことができます。 https://myaccount.google.com/security#connectedapps の下部に、右に向かって「安全性の低いアプリを許可する」オプションがあります。 「オフ」の場合は、ボタンをスライドしてオンにします。

30
roneo

私も同じ問題を抱えていたので、次のようなWHMルートログインの設定を無効にしました。

WHM>ホーム>サーバー構成>調整設定>送信SMTPをroot、exim、およびmailmanに制限(FKA SMTP調整)[?]

9
Mint

私は本当に同じ問題を抱えています、最後に、私はそれを解決しました。

Swift Mailの問題。Yamlパーサーの問題です。パスワードが数字のみの場合、パスワードはSwift最終的には同じではありません。

swiftmailer:
    transport:  smtp
    encryption: ssl
    auth_mode:  login
    Host:       smtp.gmail.com
    username:   your_username
    password:   61548921

二重引用符のパスワード「61548921」で修正する必要があります

6
user777161

同じエラーを受け取りました。

奇妙なことは、信任状の行をコメントしたことです

// ->setUsername(self::$config->username)
// ->setPassword(self::$config->password)

そして問題は消えました。

メールサーバーがこれらの資格情報を確実に必要とするため、私は困惑しています。

4
Sydwell

ここで言及されている提案のほとんどすべてを試しましたが、Googleアカウントのセキュリティ設定タブで[安全性の低いアプリへのアクセス]を[有効]に変更すると、問題は解決しました。これが他の人にも役立つことを願っています!

2
user3857499

サーバーには、何らかの暗号化と安全な認証が必要な場合があります。
参照 http://swiftmailer.org/docs/sending.html#encrypted-smtp

2
VolkerK

ユーザー名を二重引用符「username」で囲んでみてください。これはどういうわけか修正されました。

1
Ardian C.

間違ったユーザー名を使用している可能性があります。

同様のエラーが発生しました。サーバーへのログイン中に大文字を使用していないことを確認してください。

例:[email protected]

->setUsername('JacekPL')を使用すると、エラーが発生する可能性があります。代わりに->setUsername('jacekpl')を使用してください。これで私の問題が解決しました。

0
Marek D.

私は同じ問題に直面し、それを解決しました。最初にGmailアカウントに手動でログインしてみてください。この問題は、Gmailアカウントが不正使用されていることをGoogleが検出したためです。たとえば、短時間で大量のメールを送信します。

0
Toby D

最初に接続の問題があり、SMTPサーバーに到達できるかどうかを確認します。

ターミナルタイプ:

telnet servername portnumber 

220応答を受信した場合、SMTPサーバーに到達でき、接続の問題はありませんが、サーバーへの接続に失敗した場合は、ネットワークの問題を確認してください。

サーバーが認証を必要とする場合は、サーバー上でユーザー名とパスワードで認証を試行し、問題が発生するかどうかを確認します。

最後に、サーバーが暗号化を必要とするかどうかを確認し、必要であれば、opensslおよびその他のものが正しく構成されます。

0
pouya

ローカル環境などからメールを送信しようとしている場合。 XAMPPまたはWAMPの場合、このエラーは毎回発生し、Webホスティングまたは本番用に使用しているもので同じコードを試してください。

また、Googleからの2段階認証が問題になる可能性があります。

0
Jesus Rodriguez

同じエラーが発生しました。

私はGmailアカウントとGoogleのSMTPサーバーを使用してメールを送信していました。この問題は、SMTPサーバーが私のWebホスト(メールの送信者)を侵入者と見なしたため、承認を拒否したために発生しました。

Googleのプロセスに従って、ウェブホストを有効なエンティティとして識別し、アカウント経由でメールを送信して問題を解決しました。

0
Suraj