PHP Swift邮件程序:无法使用2个可能的身份验证器在SMTP上进行身份验证

时间:2010-08-23 12:14:07

标签: php authentication smtp swiftmailer

当我将带有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服务器上进行身份验证

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

13 个答案:

答案 0 :(得分:30)

这可能已经过时但有人可能会通过这个获得帮助。我也面临同样的问题,并在我的Gmail帐户上收到一封邮件,说明有人试图通过电子邮件客户端或其他网站破解您的帐户。 我搜索过,发现下面会解决这个问题。

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

更新:2015

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

答案 1 :(得分:8)

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

  

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

答案 2 :(得分:6)

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

它不像Swift Mail的问题。这是Yaml解析器的问题。 如果你的密码只有数字,那么密码最终会迅速传递到同一个。

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

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

答案 3 :(得分:4)

我刚收到同样的错误。

奇怪的是,注释了凭据行

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

问题消失了。

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

答案 4 :(得分:2)

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

答案 5 :(得分:2)

我尝试了几乎所有可能的建议,但对我来说,在我的Google帐户安全设置标签中将“访问安全性较低的应用”更改为ENABLE后问题得到了解决。希望这对其他人有用!

答案 6 :(得分:1)

尝试将用户名放在双引号“用户名”中,不知怎的,这对我来说是固定的。

答案 7 :(得分:0)

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

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

示例:JacekPL@lala.pl

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

答案 8 :(得分:0)

我也遇到了同样的错误。

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

我按照Google的流程将我的网络托管机构识别为通过我的帐户发送电子邮件的有效实体,问题已解决。

答案 9 :(得分:0)

我遇到了同样的问题并解决了它。尝试首先手动登录您的Gmail帐户。 此问题是由于谷歌检测到您的Gmail帐户一直在滥用。例如,在很短的时间内发送大量电子邮件。

答案 10 :(得分:0)

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

在终端类型中:

telnet servername portnumber 

如果您收到220响应,则可以访问SMTP服务器并且没有连接问题,但如果与服务器的连接失败,则会看到网络中出现了什么问题。

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

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

答案 11 :(得分:0)

如果您尝试从当地环境发送邮件,例如。 XAMPP或WAMP,每次都会出现此错误,请继续尝试在您的网络托管上使用相同的代码或者您正在使用的任何代码进行生产。

此外,谷歌的2步验证可能是问题。

答案 12 :(得分:-7)

奇怪的发送电子邮件再次有效。我们没有改变任何东西,主人说他们也没有。我们认为服务器重启了左右。奇怪的是:S