2013-01-12 12 views
20

Mam ten sam skrypt php uruchomiony na localhost - mój komputer z XAMPP i na serwerze hostowanym. Działa z mojego komputera, ale nie z hostowanego serwera."Hasło nie zostało zaakceptowane z serwera: 535 Nieprawidłowe dane uwierzytelniające" podczas wysyłania z GMailem i phpMailerem

Kiedy wysłać go z hostingiem, pojawia się następujący komunikat:

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 

Podejrzewam jest ustawienie konfiguracji, które muszą być zmienione na serwerze, ale nie wiem, który z nich . Każda rada byłaby bardzo doceniona!

Oto kod:

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

Odpowiedz

43

Rozwiązaniem było umożliwienie wychodzącej SMTP z ustawieniami serwera.

Na serwerach z uruchomionym WHM cPanel, znajduje się on w sekcji "Ustawienia Tweak" WHM.

Opcja polega na włączaniu/wyłączaniu - wybierz wyłącz.

Zastrzeżenie: wprowadzenie tej zmiany spowoduje przekierowanie wychodzących połączeń SMTP, umożliwiając kontom nawiązywanie bezpośrednich połączeń, co może zwiększyć prawdopodobieństwo uzyskania serwera na czarnej liście.

+8

Jesteś oszczędzającym życie. Używam CentOs 6 'Zaloguj się do CPanel> Ustawienia Tweak> Wszystkie> " Ogranicz wysyłanie SMTP do root, exim i mailman (FKA SMTP Tweak) "' <== wyłącz to. Opisuję to bardziej szczegółowo każdemu, kto ma ten sam problem. –

+1

Stary, jesteś ratownikiem, znajdowałem się tuż przed plutonem egzekucyjnym frustracji, kiedy przybyłeś znikąd z twoim bohaterskim garniturem, żeby mnie ocalić. Dzięki – Temitayo

+0

Yup. Uratowałem też moją skórę. Dzięki! –

Powiązane problemy