Отправка почты через SMTP На рассмотрении

3

Если настроить отправку почты через SMTP ( создаем файл mail.php тут инструкция), то наблюдается такая ситуация.

Если на серваке работает PHP 5, то все работает отлично!

При использовании PHP 7 ( в моем случае 7.0.7) то отправка не происходит и наблюдаем ошибку

Connection could not be established with host smtp.yandex.ru [ #0]

Думаю без разницы, что там яндекс, маил или гуля.


7 комментариев

  • +1
    Михаил Ушенин Михаил Ушенин Webasyst 30 августа 2016 17:35 #

    Какие сообщения в логах Вебасиста и PHP появляются в этом случае?

  • +1
    Rusich Rusich 30 августа 2016 17:46 #

    В логах сервера ошибок PHP нет. В логах Вебасиста появляется mail.log


    2016-08-30 13:35:34:
    Error sending email from "a@xxxxxxx.ru" to "a@xxxxx.ru" with subject "New order #1006"
    Connection could not be established with host smtp.yandex.ru [ #0]
    #0 /home/xxxxxx/domains/xxxxxxx.ru/public_html/wa-system/vendors/swift/classes/Swift/Transport/StreamBuffer.php(64): Swift_Transport_StreamBuffer->_establishSocketConnection()
    #1 /home/xxxxxxx/domains/xxxxxxx.ru/public_html/wa-system/vendors/swift/classes/Swift/Transport/AbstractSmtpTransport.php(115): Swift_Transport_StreamBuffer->initialize(Array)
    #2 /home/xxxxxxx/domains/xxxxxxx.ru/public_html/wa-system/vendors/swift/classes/Swift/Mailer.php(80): Swift_Transport_AbstractSmtpTransport->start()
    #3 /home/xxxxxxx/domains/xxxxxxx.ru/public_html/wa-system/mail/waMail.class.php(32): Swift_Mailer->send(Object(waMailMessage), Array)
    #4 /home/xxxxxxx/domains/xxxxxxx.ru/public_html/wa-system/mail/waMailMessage.class.php(106): waMail->send(Object(waMailMessage))
    #5 /home/xxxxxxx/domains/xxxxxxx.ru/public_html/wa-apps/shop/lib/classes/shopNotifications.class.php(323): waMailMessage->send()
    #6 /home/xxxxxxx/domains/xxxxxxx.ru/public_html/wa-apps/shop/lib/classes/shopNotifications.class.php(65): shopNotifications::sendEmail(Array, Array)
    #7 /home/xxxxxxx/domains/xxxxxxx.ru/public_html/wa-apps/shop/lib/actions/settings/notifications/shopSettingsNotificationsTest.controller.php(50): shopNotifications::sendOne(1, Array, 'a@xxx.ru')
    #8 /home/xxxxxxx/domains/xxxxxxx.ru/public_html/wa-system/controller/waController.class.php(21): shopSettingsNotificationsTestController->execute()
    #9 /home/xxxxxxx/domains/xxxxxxx.ru/public_html/wa-system/controller/waJsonController.class.php(28): waController->run(NULL)
    #10 /home/xxxxxxx/domains/xxxxxxx.ru/public_html/wa-system/controller/waFrontController.class.php(139): waJsonController->run()
    #11 /home/xxxxxxx/domains/xxxxxxx.ru/public_html/wa-system/controller/waFrontController.class.php(55): waFrontController->execute('', 'settings', 'notificationsTe...')
    #12 /home/xxxxxxx/domains/xxxxxxx.ru/public_html/wa-system/waSystem.class.php(600): waFrontController->dispatch()
    #13 /home/xxxxxxx/domains/xxxxxxx.ru/public_html/index.php(7): waSystem->dispatch()
    #14 {main}
    
    • +1
      Марк Марк Партнер-эксперт 20 сентября 2017 20:32 #

      Удалось решить проблему?

      • +1

        Так а в чем проблема-то?

        Есть сайты на 7.0 и 7.1. На некоторых из них почта на яндексе, на некоторых на маил. Никаких доп. настроек mail.php не делал ... везде почта ходит. Вопрос-то в чем?

      • +1
        Михаил Ушенин Михаил Ушенин Webasyst 21 сентября 2017 09:27 #

        Возможно, для разных версий PHP у вас на хостинге используется разная конфигурация. Попробуйте запустить вот такой код, если знаете, как, и посмотрите, что он вернёт:

        var_dump(stream_socket_client('ssl://smtp.yandex.ru:465', $errno, $errstr, 30, 4, stream_context_create(array())));

        Если вернёт false, значит, что-то не так с вашей конфигурацией. Такой вызов используется фреймворком при отправке писем через SMTP. Обращайтесь к администраторам хостинга с вопросом, почему такой вызов у вас не работает с PHP7.

      • +1
        Rusich Rusich 21 сентября 2017 09:36 #

        К сожалению уже не помню, что сделали. Но косяк в конфигурации сервака был.

        Да точно косяк на сервере был. Сейчас посмотрел переписку с админом. Там правили что то.

        Так что разбираться вам с настройками сервака.

      • +2
        Rusich Rusich 21 октября 2016 05:30 #

        Доброго дня. Вопрос остается открытым, когда Swift Mailer будет заменен на что то другое, что поддерживает PHP 7.

        Webasyst позиционируется как CMS полностью поддерживающее PHP7. А Swift Mailer по умолчанию не работает на нем.

        С первого сообщения прошло почти 2 месяца, а воз и ныне там. А без этой функции ну ни как не обойтись если почта находится на стороннем сервере (яндекс, маил и т.д.)

        Добавить комментарий

        Чтобы добавить комментарий, зарегистрируйтесь или войдите