2017-06-07 24 views
5

के साथ विफल रहा मैं जीमेल का उपयोग करके ईमेल भेज रहा था और सबकुछ पूरी तरह से काम कर रहा था, लेकिन आश्चर्यजनक रूप से यह काम करना बंद कर दिया। और यह मुझे यहलोकलहोस्ट और "stream_socket_enable_crypto(): एसएसएल ऑपरेशन कोड 1"

ErrorException in StreamBuffer.php line 94: 

stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: 
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed 

in StreamBuffer.php line 94 
at HandleExceptions->handleError('2', 'stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed', 'C:\xampp\htdocs\coparmex\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\StreamBuffer.php', '94', array()) 
at stream_socket_enable_crypto(resource, true, '9') in StreamBuffer.php line 94 
at Swift_Transport_StreamBuffer->startTLS() in EsmtpTransport.php line 313 
at Swift_Transport_EsmtpTransport->_doHeloCommand() in AbstractSmtpTransport.php line 118 
at Swift_Transport_AbstractSmtpTransport->start() in Mailer.php line 79 
at Swift_Mailer->send(object(Swift_Message), array()) in Mailer.php line 385 
at Mailer->sendSwiftMessage(object(Swift_Message)) in Mailer.php line 171 

और यह केवल मेरे स्थानीयहोस्ट में खुश रहता है, वेब होस्ट में ठीक काम करता है। मुझे समझ नहीं आता कि क्या हो रहा है: ग

ये मेरी Gmail सेटिंग

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.gmail.com 
MAIL_PORT=587 
MAIL_USERNAME=gmail 
MAIL_PASSWORD=password 
MAIL_ENCRYPTION=tls 
+0

इसका मतलब है कि आपके सर्वर गलत तरह से कॉन्फ़िगर, उपयोग mailtrap है या स्थानीय होस्ट के लिए लॉग इन करें ड्राइवर, खुशी है कि इस उत्पादन सर्वर पर नहीं होता है हो सकता है। क्या यह "stream_socket_enable_crypto() के आसपास Google करना मुश्किल है: एसएसएल ऑपरेशन कोड 1 के साथ विफल रहा"? – Kyslik

+0

आपको स्थानीयहोस्ट के लिए एक अच्छी तरह से गठित प्रमाणपत्र बनाना चाहिए। यह भी देखें [आप अपने प्रमाणन प्राधिकरण के साथ प्रमाणपत्र हस्ताक्षर अनुरोध पर हस्ताक्षर कैसे करते हैं] (http://stackoverflow.com/a/21340898/608639) और [openssl के साथ एक स्व-हस्ताक्षरित प्रमाणपत्र कैसे बनाएं?] (Http: // stackoverflow .com/q/10175812/608639) आपको उचित ट्रस्ट स्टोर में स्वयं-हस्ताक्षरित प्रमाणपत्र भी रखना होगा। – jww

उत्तर

6

मेल नहीं खाता के साथ एक त्रुटि है कर रहे हैं। आप एक उचित प्रमाणपत्र के बिना एक एसएसएल कनेक्शन (एन्क्रिप्टेड, सुरक्षित कनेक्शन) का उपयोग करने की कोशिश कर रहे हैं।

ऐसा इसलिए है क्योंकि आप स्थानीयहोस्ट से कनेक्ट हो रहे हैं, जो सुरक्षित नहीं है, और यह कनेक्शन द्वारा अवरुद्ध है। आप अपने स्थानीयहोस्ट कनेक्शन को एसएसएल आधारित एक में बदलकर इससे बच सकते हैं। अधिक जानकारी के लिए

this link देखें।

+0

यह इन दो लाइनों को जोड़ने में काम करता है $ विकल्प ['एसएसएल'] ['verify_peer'] = गलत; $ विकल्प ['एसएसएल'] ['verify_peer_name'] = गलत; इस फ़ाइल में: विक्रेता _ swiftmailer \ swiftmailer \ lib \ classes \ swift \ Transport \ StreamBuffer.php फ़ंक्शन _establishSocketConnection() में, लेकिन निश्चित रूप से मैं इसे उत्पादन सर्वर – Saucyloco

+0

@ सॉसीलोको में नहीं करूँगा - मुझे लगता है कि आप मुश्किल से समस्या से पक्षपात किया। आप भाग्यशाली हो गए क्योंकि यह 'लोकलहोस्ट' था, इसलिए मेल ने आपकी तार्किक सुरक्षा सीमा कभी नहीं छोड़ी। सॉकेट पर टीएलएस सक्षम करना शायद बेहतर होगा। – jww

+0

मैंने कहा, जैसा कि मैंने कहा है कि यह उत्पादन पर ठीक काम करता है, मुझे केवल स्थानीयहोस्ट में समस्या हो रही थी, जब मैं पेज अपलोड करता हूं तो मैं उन पंक्तियों को मिटा दूंगा – Saucyloco

0

मेरे पास एक ही समस्या थी और प्रमाणीकरण सुरक्षा के स्तर को हटाकर हल करने में सक्षम था। यही है, किसी बिंदु पर जीमेल ने मुझे फोन नंबर के लिए कहा - प्रमाणीकरण का दूसरा स्तर। जब मैंने इस दूसरे स्तर को हटा दिया तो मैं फिर से खुश था। मुझे आशा है कि मैंने मदद की होगी।

-1

लार्वेल में: इससे समस्या हल हो जाएगी। इस कोड के बाद विधि के अंदर \vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\StreamBuffer.php

करने के लिए जाना निजी समारोह establishSocketConnection()

$options = array(); 
     if (!empty($this->params['sourceIp'])) { 
      $options['socket']['bindto'] = $this->params['sourceIp'].':0'; 
     } 

तो यह दो पंक्तियों

$options['ssl']['verify_peer'] = FALSE; 
$options['ssl']['verify_peer_name'] = FALSE; 
+1

आपको कभी भी विक्रेता फ़ाइलों को संपादित नहीं करना चाहिए। – snipe

19

जोड़ते हैं तो आपको में कोड नीचे जोड़ना चाहिए/config /mail.php (लार्वेल 5.4 पर काम किया)

'stream' => [ 
'ssl' => [ 
    'allow_self_signed' => true, 
    'verify_peer' => false, 
    'verify_peer_name' => false, 
], 
], 

तुम कभी नहीं के रूप में सुल्तान अहमद ने सुझाव दिया विक्रेताओं में कोड बदलने के रूप में करना चाहिए

+0

मेरी समस्या हल हो गई। विक्रेता फ़ाइल संपादित नहीं करने के लिए लार्वेल 5.4 – AndroCoder

+0

+1 और इसे समाधान के रूप में चिह्नित किया जाना चाहिए। लार्वेल 5.5 में भी काम किया (वाई) –

+1

इसके लिए धन्यवाद, यह स्वीकार्य उत्तर होना चाहिए। –

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