2012-11-27 51 views
5

pocztę wyślij kod:PHPMailer uwierzytelniania serwera wymiany

$mail = new PHPMailer(true); 
    $mail->IsSMTP(); 

    try { 
     $mail->Host = 192.168.205.19; 
     $mail->Port = 25; 
     $mail->SMTPDebug = 2; 
     $mail->SMTPSecure = "tls"; 
     $mail->SMTPAuth = true; 
     $mail->Username = "[email protected]"; 
     $mail->Password = "mypassword"; 

     $mail->From = "[email protected]"; 
     $mail->FromName = "My Mail Address"; 
     $mail->SetFrom("[email protected]", "My Mail Address"); 

     $mail->AddAddress('[email protected]'); 

     $mail->Subject = "Test for subject"; 
     $mail->MsgHTML("Test my mail body"); 

     if ($mail->Send()) { 
      $result = 1; 
     } else { 
      $result = "Error: " . $mail->ErrorInfo; 
     } 
    } catch (phpmailerException $e) { 
     $result = $e->errorMessage(); 
    } catch (Exception $e) { 
     $result = $e->getMessage(); 
    } 

    return $result; 

Rezultat?

SMTP -> FROM SERVER:220 evo.callpex.int Microsoft ESMTP MAIL Service ready at Tue, 27 Nov 2012 17:45:24 +0200 
SMTP -> ERROR: Password not accepted from server: 535 5.7.3 Authentication unsuccessful 

Używam klasy PHPMailer do wysyłania poczty. I SMTP. Łączę się z serwerem Exchange Mail. Ale mam ten błąd.

Dlaczego?

Dzięki!

+0

Czy zweryfikowałeś, że 1. Twoja nazwa użytkownika i hasło są poprawne, 2. czy działają przez coś innego, jak klient pocztowy, 3. Czy twój serwer ma dostęp do serwera Exchange w celu dostarczenia wychodzącego? – Sammitch

+0

W oparciu o błąd może to nie być problem, ale warto go sprawdzić. Potwierdź, że dostęp SMTP jest włączony na serwerze Exchange dla użytkownika, z którym próbujesz się połączyć. Exchange może lub nie może używać pewnych typów szyfrowania do uwierzytelniania, więc do połączenia mogą być wymagane specjalne flagi. Na przykład podczas łączenia się z serwerem Exchange za pośrednictwem protokołu IMAP nie jest niczym niezwykłym, aby w połączeniu były używane '/ novalidate-cert' i'/tls'. Nie jestem pewien, jak by to zrobić w PHPMailer. – Chad

Odpowiedz

1

Być może używasz danych logowania administratora. Nie wiem dlaczego, ale nawet ja nie byłem w stanie wysyłać poczty za pomocą PHPMailera z danymi uwierzytelniającymi administratora (mogą istnieć pewne środki bezpieczeństwa dotyczące szczegółów administratora). Spróbuj podać dowolne inne poświadczenia użytkownika, to zadziała. To działa dla mnie z innymi danymi uwierzytelniającymi użytkownika.

, aw kodzie

$mail->From = "[email protected]"; 
    $mail->FromName = "My Mail Address"; 
    $mail->SetFrom("[email protected]", "My Mail Address"); 

$ mail-> setFrom ("mailid", "nazwa") będzie się ustawić od & wartości FromName. Nie musisz już tego ustawiać.