ja_dorado Posted September 29, 2007 Share Posted September 29, 2007 Hello All Recently people registering on my site do not get the confirmation e-mails if they use Gmail, this has become an annoying problem. I have used Google to find fixes, however the 2 fixes I found aren't fixes, because the e-mails still do not get there. The first thing I tried was ini_set(sendmail_from, "james@invisionsoft.co.uk"); then ini_restore; before and after sending the mail, but no luck. The next thing I tried was sending with Gmail SMTP servers. function authgMail($from, $namefrom, $to, $nameto, $subject, $message) { /* your configuration here */ $smtpServer = "tls://smtp.gmail.com"; //does not accept STARTTLS $port = "587"; // try 587 if this fails $timeout = "45"; //typical timeout. try 45 for slow servers $username = "neon199@googlemail.com"; //your gmail account $password = "NoPass"; //the pass for your gmail $localhost = $_SERVER['REMOTE_ADDR']; //requires a real ip $newLine = "\r\n"; //var just for newlines /* you shouldn't need to mod anything else */ //connect to the host and port $smtpConnect = fsockopen($smtpServer, $port, $errno, $errstr, $timeout); echo $errstr." - ".$errno; $smtpResponse = fgets($smtpConnect, 4096); if(empty($smtpConnect)) { $output = "Failed to connect: $smtpResponse"; echo $output; return $output; } else { $logArray['connection'] = "Connected to: $smtpResponse"; echo "connection accepted<br>".$smtpResponse."<p />Continuing<p />"; } //you have to say HELO again after TLS is started fputs($smtpConnect, "HELO $localhost". $newLine); $smtpResponse = fgets($smtpConnect, 4096); $logArray['heloresponse2'] = "$smtpResponse"; //request for auth login fputs($smtpConnect,"AUTH LOGIN" . $newLine); $smtpResponse = fgets($smtpConnect, 4096); $logArray['authrequest'] = "$smtpResponse"; //send the username fputs($smtpConnect, base64_encode($username) . $newLine); $smtpResponse = fgets($smtpConnect, 4096); $logArray['authusername'] = "$smtpResponse"; //send the password fputs($smtpConnect, base64_encode($password) . $newLine); $smtpResponse = fgets($smtpConnect, 4096); $logArray['authpassword'] = "$smtpResponse"; //email from fputs($smtpConnect, "MAIL FROM: <$from>" . $newLine); $smtpResponse = fgets($smtpConnect, 4096); $logArray['mailfromresponse'] = "$smtpResponse"; //email to fputs($smtpConnect, "RCPT TO: <$to>" . $newLine); $smtpResponse = fgets($smtpConnect, 4096); $logArray['mailtoresponse'] = "$smtpResponse"; //the email fputs($smtpConnect, "DATA" . $newLine); $smtpResponse = fgets($smtpConnect, 4096); $logArray['data1response'] = "$smtpResponse"; //construct headers $headers = "MIME-Version: 1.0" . $newLine; $headers .= "Content-type: text/html; charset=iso-8859-1" . $newLine; $headers .= "To: $nameto <$to>" . $newLine; $headers .= "From: $namefrom <$from>" . $newLine; //observe the . after the newline, it signals the end of message fputs($smtpConnect, "To: $to\r\nFrom: $from\r\nSubject: $subject\r\n$headers\r\n\r\n$message\r\n.\r\n"); $smtpResponse = fgets($smtpConnect, 4096); $logArray['data2response'] = "$smtpResponse"; // say goodbye fputs($smtpConnect,"QUIT" . $newLine); $smtpResponse = fgets($smtpConnect, 4096); $logArray['quitresponse'] = "$smtpResponse"; $logArray['quitcode'] = substr($smtpResponse,0,3); fclose($smtpConnect); //a return value of 221 in $retVal["quitcode"] is a success return($logArray); } authgMail("james@invisionsoft.co.uk","James","james@invisionsoft.co.uk","James","Test Message","Test Message"); Unfortunately, neither of these methods work and I'm very stuck with what to do next. Regards James Quote Link to comment https://forums.phpfreaks.com/topic/71152-solved-php-mails-never-get-to-gmail-cant-find-easy-fix/ Share on other sites More sharing options...
sayedsohail Posted September 29, 2007 Share Posted September 29, 2007 I found a class that does the job, also look at the settings i described in the thread: Sohail http://www.vulgarisoip.com/2006/10/13/update-send-email-with-php-and-gmail-hosted-for-your-domain/#comment-3211 Quote Link to comment https://forums.phpfreaks.com/topic/71152-solved-php-mails-never-get-to-gmail-cant-find-easy-fix/#findComment-357860 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.