2012-11-27 17 views
5

मेरे मेल भेजने कोड:PHPMailer एक्सचेंज सर्वर प्रमाणीकरण

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

परिणाम?

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 

मैं भेजे गए मेल के लिए PHPMailer क्लास का उपयोग कर रहा हूं। और एसएमटीपी। मैं एक्सचेंज मेल सर्वर से कनेक्ट कर रहा हूं। लेकिन मुझे यह त्रुटि है।

क्यों?

धन्यवाद!

+0

क्या आपने यह सत्यापित किया है 1. आपका उपयोगकर्ता नाम और पासवर्ड सही है, 2. वे मेल क्लाइंट की तरह किसी अन्य चीज़ के माध्यम से काम करते हैं, 3. आपके सर्वर को आउटबाउंड डिलीवरी के लिए एक्सचेंज सर्वर तक पहुंचने की अनुमति है? – Sammitch

+0

त्रुटि के आधार पर, यह समस्या नहीं हो सकती है लेकिन इसकी जांच योग्य है। पुष्टि करें कि उस उपयोगकर्ता के लिए एक्सचेंज सर्वर पर एसएमटीपी एक्सेस सक्षम है जिसे आप कनेक्ट करने का प्रयास कर रहे हैं। एक्सचेंज प्रमाणीकरण के लिए कुछ प्रकार के एन्क्रिप्शन का उपयोग कर सकता है या नहीं भी हो सकता है ताकि कनेक्ट करने के लिए विशेष झंडे की आवश्यकता हो। उदाहरण के लिए, IMAP के माध्यम से किसी Exchange सर्वर से कनेक्ट करते समय, कनेक्शन में '/ novalidate-cert' और'/tls' की आवश्यकता नहीं है। मुझे यकीन नहीं है कि आप PHPMailer के साथ ऐसा करने के बारे में कैसे करेंगे। – Chad

उत्तर

1

क्या आप व्यवस्थापक प्रमाण-पत्र का उपयोग कर रहे हैं। पता नहीं क्यों, लेकिन मैं व्यवस्थापक क्रेडेंशियल के साथ PHPMailer का उपयोग कर मेल भेजने में सक्षम नहीं था (व्यवस्थापक विवरण के लिए कुछ सुरक्षा उपाय लागू हो सकते हैं)। किसी भी अन्य उपयोगकर्ता प्रमाण पत्र देने का प्रयास करें, यह काम करेगा। यह मेरे लिए अन्य उपयोगकर्ता प्रमाण-पत्रों के साथ काम करता है।

और, अपने कोड

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

$ मेल> SetFrom ("mailid", "नाम") में ही & FROMNAME मूल्यों से सेट हो जाएगा। आपको इसे फिर से सेट करने की आवश्यकता नहीं है।

संबंधित मुद्दे