发送激活电子邮件,SMTP服务器不接受密码

时间:2014-10-16 08:03:19

标签: cakephp smtp gmail sendmail

我正在使用CakePHP发送电子邮件,我收到错误:SMTP server did not accept the password,以及收件箱中的电子邮件说:sign-in attempt blocked! , we recently blocked a sign-in attempt to your Google Account

这是正常的吗?

我正在使用Xampp。

function sendActivationEmail($user_id)    
{   
    Debugger::dump($user_id);

    $user = $this->User->findById($user_id);

    if ($user==false) 
    {
        debug(__METHOD__." failed to retrieve User data for user.id: {$user_id}");
        return false;
    } 
    $this->set('username', $this->data['User']['username']);
    $this->Email->to = $user['User']['email'];
    $this->Email->subject = env('SERVER_NAME').'- Please confirm your email address';
    $this->Email->from = 'laurent@gmail.com';
    $this->Email->template = 'account_verification';
    $this->Email->delivery = 'smtp';
    $this->Email->smtpOptions = array(
    'port'=>'465',
    'timeout'=>'30',
    'host' => 'ssl://smtp.gmail.com',
    'username'=>'laurent@gmail.com',
    'password'=>1234567
    );
    $this->Email->sendAs = 'text';  
    return $this->Email->send();

}

3 个答案:

答案 0 :(得分:25)

您需要允许"安全性较低"您的Google帐户设置中的应用:

https://www.google.com/settings/security/lesssecureapps

enter image description here

同时查看此公告http://googleonlinesecurity.blogspot.de/2014/04/new-security-measures-will-affect-older.html

您应该实施OAuth2而不是削弱安全性。

答案 1 :(得分:9)

确保'用户名'中的字段=>和'密码' =>是认证的或有效的。我遇到了同样的问题,我所做的只是点击此链接https://accounts.google.com/b/0/DisplayUnlockCaptcha,然后点击按钮“继续”#39;。 确保您使用'用户名'登录gmail和密码'在您的代码中提供。之后,尝试再次发送电子邮件。

答案 2 :(得分:0)

我面临着同样的问题。就我而言,密码不是很安全。它包含密码中的用户名。我更改了密码,然后重试。有用。 *您可以做的另一件事是,可以使用具有强密码的其他电子邮件地址。确保验证码正确且启用的安全性较低。 *

https://accounts.google.com/b/0/DisplayUnlockCaptcha