Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Password not accepted from server: 535 Incorrect authentication data" when sending with GMail and phpMailer

Tags:

I have the same php script running on localhost - my PC with XAMPP and on a hosted server. It works from my PC, but not from the hosted server.

When I send it from the hosted server, I get the following output:

SMTP -> ERROR: Password not accepted from server: 535 Incorrect authentication data   SMTP -> ERROR: RCPT not accepted from server: 550-Please turn on SMTP Authentication in your mail client, or login to the 550-IMAP/POP3 server before sending your message. dev.camppage.com 550-(patchvalues.com) [205.234.141.238]:50958 is not permitted to relay through 550 this server without authentication.   SMTP Error: The following recipients failed: [email protected] FAILED 

I suspect there is a configuration setting that needs to be changed on the server, but I don't know which one. Any advice would be greatly appreciated!

Here is the code:

function send_gmail ($recipients, $subject, $message, $attachment_filenames = array())  {   global $email_address, $email_password, $email_name;   require_once ($_SERVER['DOCUMENT_ROOT']. '/php/PHPMailer/class.phpmailer.php');       $body  = $message;   $body  = str_replace("\\", '', $body);   $mail = new PHPMailer();   $mail->CharSet = "UTF-8";   $mail->IsSMTP();   $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server   $mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing) 0 - none; 1 - errors & messages; 2 - messages only   $mail->SMTPAuth   = true;                  // enable SMTP authentication   $mail->SMTPSecure = "ssl";                 // sets the prefix to the servier   $mail->Port       = 465;                   // set the SMTP port   $mail->Username   = $email_address;  // GMAIL username   $mail->Password   = $email_password; // GMAIL password   $mail->SetFrom($email_address);   $mail->FromName   = $email_name;   $mail->AddReplyTo($email_address,$email_name);   $mail->Subject    = $subject;   $mail->MsgHTML($body);   $mail->IsHTML(true); // send as HTML    if (isset ($recipients[0]))   {     foreach ($recipients AS $to)     {         $to_pieces = explode (",", $to, 2);         $to_email = trim ($to_pieces[0]);         if (isset ($to_pieces[1]))             $to_name = trim ($to_pieces[1]);         else             $to_name = " ";         $mail->AddAddress($to_email, $to_name);     }     $mail->IsHTML(true); // send as HTML      if ($mail->Send()){         return TRUE;     } else {         return FALSE;     } }  else  {     return FALSE; } } 

TIA

like image 215
John Dorner Avatar asked Jan 12 '13 19:01

John Dorner


People also ask

Can not authenticate to SMTP server 535?

SMTP error 535 indicates an issue with the client's authentication with the email server. It may be the result of many issues, some of the most common causes being: Invalid credentials. Disabled account.

How do I fix SMTP failed to connect to server?

Change the server's SMTP restrictions. Then, add the specified website user to the list of users who are authorized to initiate outbound SMTP connections. Edit PHPMailer's configuration settings, such as host and port. Correct DNS resolution for the mail server.

Could not authenticate mailer error SMTP error could not authenticate?

Error: SMTP error: could not authenticateThis error indicates that the client could not authenticate with the email server. It can be the cause of multiple reasons, for example: The user did not enter valid credentials when logging in. The user did not verify with the multi-factor authentication mechanisms enabled.


2 Answers

The solution was to enable outgoing SMTP from the server settings.

On servers running cPanel's WHM, this is located under WHM's "Tweak Settings" section.

The option is to enable/disable - choose disable.

Caveat: Making this change will redirect outgoing SMTP connections allow accounts to make direct connections which may increase your odds of getting your server blacklisted.

like image 95
John Dorner Avatar answered Sep 28 '22 13:09

John Dorner


this is related to WHM/cPanel , you can do the same thing as in the previous answer or from shell by typing this

/scripts/smtpmailgidonly off 

you should get

"SMTP Mail protection has been disabled.  All users may make outbound smtp connections." 

more reading here https://forums.cpanel.net/threads/cant-enable-smtp-restrictions.360971/

like image 42
Nassim Avatar answered Sep 28 '22 11:09

Nassim