मैं PHP 5.6 पर PHPMailer का उपयोग कर रहा हूं, PHP 5.6 में प्रमाणित चारों ओर बढ़ी हुई सुरक्षा निश्चित रूप से मजेदार है।PHPMailer PHP उत्पन्न करता है चेतावनी: stream_socket_enable_crypto(): पीयर प्रमाणपत्र अपेक्षित मिलान नहीं किया
मैं dreamhost पर होस्ट किए गए डोमेन को एक टेस्ट संदेश भेजने की कोशिश कर रहा हूं, PHPMailer से वापस आने वाली त्रुटि है: SMTP होस्ट से कनेक्ट नहीं हो सका।
यह त्रुटि सही नहीं है, हालांकि, लॉगिंग सक्षम है और वास्तव में यह वास्तव में चल रहा है।
Connection: opening to mx1.sub4.homie.mail.dreamhost.com:25, timeout=30, options=array () Connection: opened S: 220 homiemail-mx32.g.dreamhost.com ESMTP
C: EHLO s81a.ikbb.com
S: 250-homiemail-mx32.g.dreamhost.com 250-PIPELINING 250-SIZE 40960000 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250 8BITMIME
C: STARTTLS
S: 220 2.0.0 Ready to start TLS
C: QUIT
S: SMTP ERROR: QUIT command failed: Connection: closed
मुझे समझ में नहीं आया कि क्यों PHPMailer छोड़ देता है, जब यह संदेश भेजना शुरू कर देता है तो एक QUIT कमांड जारी करता है।
पीएचपी चेतावनी:: stream_socket_enable_crypto(): पीर प्रमाण पत्र सीएन = *.mail.dreamhost.com' did not match expected CN=
mx1.sub4.homie.mail.dreamhost.com '/home/ikbb/domains/dev.ikbb.com/ में मैं एक लॉग से एक और सुराग मिला public_html/include/phpmailer/5.2.10/class.smtp.php
यदि मैं प्रमाणित प्रमाणीकरण को रोकने के लिए कुछ कस्टम विकल्प का उपयोग करता हूं, तो मैं इसे जारी रखने के लिए इसे प्राप्त कर सकता हूं। यहाँ मैं क्या है:
$mail->SMTPOptions = array (
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true));
अगर मैं वहाँ में SMTPOptions डाल और साथियों के सत्यापन छोड़, संदेश ठीक से चला जाता है - सब पर PHP में कोई चेतावनी के साथ।
मैं उस त्रुटि को कैसे जा सकता हूं, इसलिए मुझे पता है कि कोई समस्या है लेकिन अभी भी संदेश भेज रहा है?
हाँ, यह बहुत नहीं है! यदि आप सत्यापन अक्षम करते हैं तो आपको चेतावनी नहीं मिलेगी क्योंकि stream_socket_enable_crypto त्रुटि कोड नहीं लौटाता है, केवल एक बूलियन। चेतावनी को फँसाने के लिए अस्थायी त्रुटि हैंडलर बनाना एक गन्दा कामकाज होगा। आप क्या कर सकते हैं सत्यापन (यानी डिफ़ॉल्ट) के साथ देने का प्रयास करें, और यदि यह विफल हो जाता है, तो छोड़ने से पहले सत्यापन के बिना पुनः प्रयास करें। – Synchro
एसएमटीपी एक गड़बड़ है। आमतौर पर, आप जो भी कर सकते हैं वह अवसरवादी एन्क्रिप्शन है। * यदि * आप DNS एमएक्स रिकॉर्ड का पालन करते हैं, तो होस्टनाम संभवतः मेल खाता है क्योंकि आपको शायद किसी भिन्न डोमेन पर स्मार्ट होस्ट पर निर्देशित किया जा रहा है। यही है, 'example.com' के लिए मेल' spam-filer.com' पर निर्देशित है। इस मामले में, स्पैम फ़िल्टर एक स्मार्ट होस्ट है। – jww