يؤدي إرسال البريد الإلكتروني باستخدام php وgmail وswiftmailer إلى حدوث خطأ متعلق بـ SSL

StackOverflow https://stackoverflow.com/questions/4846599

سؤال

هذا هو كود PHP الخاص بي:

function SendCookieToTheMail()
{
    require_once 'swift-mailer/lib/swift_required.php';
    //Create the Transport
    $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com')
      ->setPort(465)
      ->setEncryption('ssl')
      ->setUsername('007@gmail.com')
      ->setPassword('123')
      ;

    //Create the Mailer using your created Transport
    $mailer = Swift_Mailer::newInstance($transport);

    //Create a message
    $message = Swift_Message::newInstance('Test')
      ->setFrom(array('007@gmail.com' => 'From mr. 007'))
      ->setTo(array('007@gmail.com', '007@gmail.com' => 'To mr. 007'))
      ->setBody('Body')
      ;

    //Send the message
    $result = $mailer->send($message);

    /*
    You can alternatively use batchSend() to send the message

    $result = $mailer->batchSend($message);
    */ 
}

وهنا الخطأ:

( ! ) Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?) in C:\Program Files\wamp\www\swift-mailer\lib\classes\Swift\Transport\StreamBuffer.php on line 233

( ! ) Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection could not be established with host smtp.gmail.com [Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? #44551400]' in C:\Program Files\wamp\www\swift-mailer\lib\classes\Swift\Transport\StreamBuffer.php on line 235

( ! ) Swift_TransportException: Connection could not be established with host smtp.gmail.com [Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? #44551400] in C:\Program Files\wamp\www\swift-mailer\lib\classes\Swift\Transport\StreamBuffer.php on line 235

أين المشكلة؟؟

تحديث:

لقد تاكدت phpinfo() وتقول:

OpenSSL support     disabled (install ext/openssl) 

لقد أشرت إلى الروابط أدناه، ولكن لم أتمكن من تثبيت SSL ...

هل كانت مفيدة؟

المحلول

هل لغة php الخاصة بك تدعم SSL؟ http://php.net/manual/en/function.fsockopen.php, ، و تأكد http://www.php.net/manual/en/openssl.installation.php كمرجع.

إنشاء صفحة مع

phpinfo();

هل تم تمكين طبقة المقابس الآمنة (SSL)؟

نصائح أخرى

كنت أبحث عن سؤال مماثل ووجدت أنه يتعين عليك تحرير ملف php.ini تحرير السطر التالي

;extension=php_openssl.dll

إزالة شبه القولون وسوف تعمل بشكل جيد

نأمل أن يساعد أي شخص آخر :)

يحتاج Gmail إلى هذا في ملف config.yml الخاص بك

البريد السريع:التشفير:tls

أو استبدال الخاص بك:-> setencryption ('ssl') بواسطة -> setencryption ('tls')

وليس SSL

يجب عليك تمكين وحدة php_openssl من ملحقات php.مجرد تحرير الخاص بك php.ini ملف

extension=php_openssl.dll

في الواقع ، أنصحت استخدام TLS في اختبار المنفذ 25 باستخدام بناء الجملة التالي:

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 25, 'tls')
    ->setUsername('007@gmail.com')
    ->setPassword('123');

تحتاج إلى تكوين PHP للعمل مع SSL

http://www.php.net/manual/en/openssl.installation.php

أتمنى أن تكون قد حلت مشكلتك، ولكن بالنسبة لي:

;extension=php_openssl.dll

لم يكن موجودًا في php.ini (تشغيل Xampp 1.7.7 على Win7) ، لذا ما عليك سوى المضي قدمًا وأضفه في قسم الامتدادات ، وإزالة Semicolon منه ويجب أن يعمل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top