问题
I'm sending an email using CakePHP and I got an Error: SMTP server did not accept the password
, along with an email in my inbox says that: sign-in attempt blocked! , we recently blocked a sign-in attempt to your Google Account
.
Is that normal?
I'm using 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();
}
回答1:
You need to allow "less secure" apps in your Google account settings:
https://www.google.com/settings/security/lesssecureapps

See this announcement as well http://googleonlinesecurity.blogspot.de/2014/04/new-security-measures-will-affect-older.html
You should implement OAuth2 instead of weakening the security.
回答2:
Make sure that the field in 'username' => and 'password'=> is authenticate or valid. I had experienced the same issue and all I do is to go this link https://accounts.google.com/b/0/DisplayUnlockCaptcha and click the button 'Continue'. make sure you're logged in in gmail using the 'username' and 'password' provided in your code. After that, try to send email again.
来源:https://stackoverflow.com/questions/26399202/sending-activation-email-smtp-server-did-not-accept-the-password