2012-11-27 28 views
5

My posta gönderme kodu:phpmailer değişimi sunucu kimlik doğrulaması

$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; 

Sonucu?

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 

Gönderilen postalar için PHPMailer sınıfını kullanıyorum. Ve SMTP. Exchange Mail sunucusuna bağlanıyorum. Ama bende bu hata var.

Neden?

Teşekkürler!

+0

Bunu doğruladınız mı? 1. Kullanıcı adınız ve parolanız doğru, 2. posta istemcisi gibi başka bir şeyle çalışıyorlar. 3. Sunucunuzun giden teslimat için Exchange sunucusuna erişmesine izin verildi mi? – Sammitch

+0

Hataya bağlı olarak, bu sorun olmayabilir, ancak buna değer bir denetim olmayabilir. Bağlanmaya çalıştığınız kullanıcı için Exchange sunucusunda SMTP erişiminin etkinleştirildiğini doğrulayın. Exchange, kimlik doğrulama için belirli şifreleme türlerini kullanıyor olabilir ya da olmayabilir, dolayısıyla bağlanmak için özel bayraklar gerekebilir. Örneğin, bir Exchange sunucusuna IMAP üzerinden bağlanırken, bağlantıda '/ novalidate-cert' ve'/tls' 'e ihtiyaç duyması alışılmadık bir durum değildir. Bunu PHPMailer ile yapmanın nasıl olduğuna emin değilim. – Chad

cevap

1

Yönetici kimlik bilgilerini kullanıyor olabilir misiniz? Neden bilmiyorum ama ben bile PHPMailer kullanarak admin kimlik bilgileri ile gönderemedim (Yönetici ayrıntıları için geçerli bazı güvenlik önlemleri olabilir). Başka kullanıcı kimlik bilgilerini vermeye çalışın, işe yarayacaktır. Diğer kullanıcı kimlik bilgileriyle çalışıyorum.

Ve Kodunuzla

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

$ posta-> SetFrom ("mailid", "name") olarak kendisi & FROMNAME değerlerinden ayarlayacaktır. Bunu tekrar ayarlamana gerek yok.