Search code examples
phpgmailpear

PHP PEAR mail fails using Google Apps mail account - error 535 authentication failed


I have a PHP page that uses PEAR Mail to send a message through a Google Apps mail account. The page is only active in the fall and winter, and it was working great when it was last used in January.

Now, as I prep the site for the fall, this page no longer works. I have the exact same problem as described at SMTP Error 535 (Incorrect authentication data) using PEAR mail There have been no answers to that question and it won't allow me to comment, so I'm starting a new question.

I am using code identical to that posted by pavan kumar at Send email using the GMail SMTP server from a PHP page .

The error message is:

authentication failure [SMTP: Invalid response code received from server (code: 535, response: Incorrect authentication data)]

I double-checked that the login for the mail user had not been changed since January. I copied and pasted the address and password from my script into the Gmail login in my browser. It worked, so I know my parameters are correct. This account is a business domain address, not @gmail.com.

I am trying to connect at:

$host = "ssl://smtp.gmail.com";
$port = "465";

I also tried specifying tls:// and port 587, no luck. I also set the host to "googlemail.com" instead of "gmail.com" per a suggestion in another SO thread.

I did a var_dump() of the $smtp object, and confirmed my address and password were passed into it successfully and accurately.

The account is on a cPanel system that recently upgraded to PHP 5.3.5 and Apache 2.2.22. It seems unlikely that change could have triggered this problem, but I mention it in case it could be a factor.

Edit: Found http://support.google.com/a/bin/answer.py?hl=en&answer=176600 which says "...you must configure an SPF record for your domain with the IP address of the device or application to ensure that recipients do not reject mail sent from it. You must also add this IP address to the Email Whitelist box in your Google Apps control panel. For example. if your sending device sends from 123.45.67.89, add that address to your SPF record without removing the Google Apps mail servers from the record..." Unfortunately I don't have an Email Whitelist box in this domain - it's the free <10 user account which evidently doesn't have that feature.


Edit 2: Related: http://support.google.com/mail/bin/answer.py?hl=en&answer=78775


Edit 3: I set up the account in Opera mail, and sent successfully using both AUTH LOGIN and AUTH PLAIN settings.


Solution

  • The problem was located at my web host, not Google's mail server.

    The account is on a cPanel server, and the admin had set it so that only designated user accounts could access external SMTP servers. He disabled that requirement in order for me to test, and my mail system immediately started working.

    So far, though, I have found no documentation on how to log into cPanel as one of the authorized users when its SMTP Authentication is activated. I will update this if I find some.