25

当我使用 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 个可能的身份验证器在用户名“user@example.com”的 SMTP 服务器上进行身份验证

我确定登录信息是正确的。

4

13 回答 13

32

这可能很旧,但有人可能会通过这个获得帮助。我也遇到了同样的问题,并在我的 gmail 帐户上收到了一封邮件,说明有人试图通过电子邮件客户端或其他网站入侵您的帐户。然后我搜索并发现执行以下操作可以解决此问题。

转到https://accounts.google.com/UnlockCaptcha‎</a> 并解锁您的帐户,以便通过其他媒体/网站进行访问。

更新:2015

此外,您可以试试这个,转到https://myaccount.google.com/security#connectedapps 在底部,向右有一个选项“允许不太安全的应用程序”。如果它是“OFF”,则通过滑动按钮将其打开。

更新:2021

谷歌 URL 现已更改为:https ://myaccount.google.com/lesssecureapps 。您将被要求重新登录

于 2013-12-18T11:26:57.003 回答
12

我有同样的问题,所以我在我的 WHM root 登录中禁用了一项设置,如下所示:

WHM > Home > 服务器配置 > 调整设置 > 将传出 SMTP 限制为 root、exim 和 mailman (FKA SMTP Tweak) [?]

于 2017-11-11T14:52:46.043 回答
8

我真的有同样的问题,最后,我解决了。

它可能不是 Swift Mail 的问题。这是 Yaml 解析器的问题。如果你的密码只有数字,那么send到swift的密码终于不一样了。

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

你需要用双引号密码修复它:“61548921”

于 2013-04-25T19:04:50.037 回答
4

我刚刚收到同样的错误。

奇怪的是评论了凭证行

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

问题消失了。

我很困惑,因为邮件服务器肯定需要这些凭据。

于 2012-10-16T19:19:51.100 回答
2

服务器可能需要某种加密和安全身份验证。
http://swiftmailer.org/docs/sending.html#encrypted-smtp

于 2010-08-23T12:42:53.620 回答
2

我尝试了此处提到的几乎所有可能的建议,但对我来说,在我的 Google 帐户安全设置选项卡中将“访问不太安全的应用程序”更改为启用后,问题得到了解决。希望这对其他人有用!

于 2014-10-17T17:01:15.000 回答
1

try putting username in double quote "username", somehow that fixed for me.

于 2014-01-30T21:29:06.923 回答
0

我遇到了同样的问题并解决了。尝试先手动登录到您的 gmail 帐户。此问题是由于 google 检测到您的 gmail 帐户已被滥用。例如,在短时间内发送大量电子邮件。

于 2013-06-27T04:01:28.440 回答
0

首先检查是否有任何连接问题,您可以访问 SMTP 服务器:

在终端类型中:

telnet servername portnumber 

如果您收到 220 响应,您可以访问 SMTP 服务器并且没有连接问题,但是如果与服务器的连接失败,请查看您的网络中的问题。

如果服务器需要身份验证,请尝试通过用户名和密码在服务器上进行身份验证,看看是否有问题。

最后看看服务器是否需要加密,如果是,openssl 和其他东西是否配置正确。

于 2013-08-26T05:31:54.543 回答
0

您可能使用了错误的用户名。

我有一个类似的错误。确保您在登录服务器时没有使用大写字母。

示例:JacekPL@lala.pl

如果使用->setUsername('JacekPL'),这可能会导致错误。改为使用->setUsername('jacekpl')。这解决了我的问题。

于 2012-10-29T10:40:46.527 回答
0

我得到了同样的错误。

我使用 gmail 帐户和 Google 的 SMTP 服务器发送电子邮件。问题是由于 SMTP 服务器拒绝授权,因为它认为我的网络主机(我通过它发送电子邮件)是入侵者。

我按照 Google 的流程将我的虚拟主机标识为通过我的帐户发送电子邮件的有效实体,问题得到解决。

于 2013-05-01T12:52:14.397 回答
0

如果您尝试从本地环境发送邮件,例如。XAMPP 或 WAMP,每次都会发生此错误,请继续在您的虚拟主机或您用于生产的任何内容上尝试相同的代码。

此外,来自谷歌的两步验证可能是问题所在。

于 2015-04-26T23:55:46.960 回答
-7

足够奇怪的发送电子邮件再次起作用。我们没有改变任何东西,主人说他们也没有。我们认为服务器重新启动左右。很奇怪:S

于 2010-08-25T12:17:28.963 回答