2016-09-22 24 views
5

Używam PHPMailera od roku na serwerze php. Wszystko było w porządku aż 3 dni temu, kiedy zaczęła się następujący błąd:PHPMailer - Nie można uwierzytelnić

SMTP Error: Could not authenticate.

Zezwalaj na mniej bezpieczne aplikacje jest Włączony

Oto kod:

function SendEmail($to,$cc,$bcc,$subject,$body) { 
require 'PHPMailerAutoload.php'; 

$mail = new PHPMailer(true); 
$mail->SMTPDebug = 1; 
try { 
$addresses = explode(',', $to); 
foreach ($addresses as $address) { 
    $mail->AddAddress($address); 
} 
if($cc!=''){ 
    $mail->addCustomHeader("CC: " . $cc); 
} 
if($bcc!=''){ 
    $mail->addCustomHeader("BCC: " . $bcc); 
} 
$mail->IsSMTP(); 
$mail->SMTPAuth = true; // turn on SMTP authentication 
$mail->SMTPSecure = "tls";     // sets the prefix to the servier 
$mail->Host = "smtp.gmail.com";  // sets GMAIL as the SMTP server 
$mail->Port = 587; 
$mail->Username = "[email protected]"; // SMTP username 
$mail->Password = "myemailpass"; // SMTP password 
$webmaster_email = "[email protected]"; //Reply to this email ID 
$name=$email; 
$mail->From = $webmaster_email; 
$mail->FromName = "Service"; 
//$mail->AddReplyTo($webmaster_email, "DiFractal Customer Service"); 
$mail->WordWrap = 50; // set word wrap 
$mail->IsHTML(true); // send as HTML 
$mail->Subject = $subject; 
$mail->Body = $body; 
return $mail->Send(); 
} catch (phpmailerException $e) { 
$myfile = fopen("debug_email.txt", "w"); 
      fwrite($myfile,$e->errorMessage() . "\n" . $mail->ErrorInfo); 
      fclose($myfile);//Pretty error messages from PHPMailer 
} catch (Exception $e) { 
$myfile = fopen("debug_email_stp.txt", "w"); 
      fwrite($myfile,$e->getMessage()); 
      fclose($myfile);//Pretty error messages from PHPMailer 
      } 
} 

Uwaga Właśnie zaktualizowane PHPMailer do najnowszej wersji, aby spróbować rozwiązać problem, ale nic się nie zmieniło! Stara wersja 5.2.2 nadal miała ten sam problem!

EDYCJA: Właśnie jeden udany e-mail przejść do google i wysłana poprawnie. Co teraz sprawia, że ​​pytam, czy to problem z lagami czy coś w tym rodzaju. Czy ktoś wie, jak phpmailer działa pod dużym obciążeniem lub czy wysokie obciążenia mogą spowodować powyższy błąd?

+0

Bardzo częste pytanie. Czy sprawdziłeś [** google **] (https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=phpmailer%20gmail%20could%20not%20authenticate)? –

+0

@Michael_B Oczywiście. Standardowy proces to dla mnie zbadanie pierwszej strony wyników wyszukiwania z google przed opublikowaniem na stosie. –

+0

Standardowy proces dla mnie, gdy pytanie jest bardzo powszechne, to pytanie. Większość nie jest tak sumienna jak ty :-) –

Odpowiedz

0

Należy sprawdzić limity użytkowania Google! PHPMailer nie poda ci szczegółowych informacji, które poda ci błąd Nie można się uwierzytelnić, ale powód, dla którego może być z powodu twoich ograniczeń.

@https://support.google.com/a/answer/166852?hl=en

przeniesieni do nowego konta z Google biznesu i włączone do tego konta. Problem rozwiązany.

0

spróbuj przejść do: myaccount.google.com ->"połączonych aplikacji & witryn" i włącz "Zezwalaj na mniej bezpieczne aplikacje" do "ON". Alternatywne: Spróbuj zmienić port SMTP na: 465 (również w Gmailu).

+0

Twoja pierwsza sugestia jest już potwierdzona w pytaniu (patrz ** pogrubiony ** tekst). –

0

miałem podobne problemy i potrzebne, aby ustawić od adresu

$mail->setFrom('[email protected]', 'Webmaster'); 
Powiązane problemy