За последние 24 часа нас посетили 22873 программиста и 1272 робота. Сейчас ищут 769 программистов ...

Как поправить трабл с swiftmailer

Тема в разделе "PHP для новичков", создана пользователем victor_orlov, 11 янв 2021.

Метки:
  1. victor_orlov

    victor_orlov Активный пользователь

    С нами с:
    16 июл 2019
    Сообщения:
    41
    Симпатии:
    0
    разработка на ospanel, скрин проблемы -

    http://joxi.ru/Drla4OZsVXyGnm

    как поправить данную проблему?
     
  2. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    @victor_orlov, извините, но, первая реакция на практику выкладки скрина вместо текста ошибки - мысль о том, что автор, вероятно, не хочет найти решение проблемы.
    Подробнее
     
  3. victor_orlov

    victor_orlov Активный пользователь

    С нами с:
    16 июл 2019
    Сообщения:
    41
    Симпатии:
    0
    Fatal error: Uncaught Error: Class 'Swift_SmtpTransport' not found in D:\OSPANEL\domains\phpintensive\templates\email.php:4 Stack trace: #0 {main} thrown in D:\OSPANEL\domains\phpintensive\templates\email.php on line 4
    --- Добавлено ---
    Сам код такой -
    Код (Text):
    1. <?php require_once("../getwinner.php");?>
    2.  
    3. <?php
    4. try{$transport = (new Swift_SmtpTransport('http://phpdemo.ru', 25))
    5.     ->setUsername('keks@phpdemo.ru')
    6.     ->setPassword('htmlacademy');
    7. $mailer = new Swift_Mailer($transport);
    8.  
    9. $message = (new Swift_Message())
    10. ->setSubject('    Ваша ставка победила')
    11. ->setFrom(['keks@phpdemo.ru'])
    12. ->setTo(['$getarrwinner["email"]' => 'New Mailtrap user']);
    13. $message->setBody(
    14. '<html lang="ru">'.
    15. '<body>'.
    16. '<h1>Поздравляем с победой</h1>' .
    17. '<p>Здравствуйте, <?php echo $getarrwinner["name"];?></p> ' .
    18. '<p>Ваша ставка для лота <a href="/lot.php?id=<?php echo $getarrwinner["lotsid"]; ?>">
    19. <?php echo $getarrwinner["name_of_the_lot"]; ?></a> победила.</p>' .
    20. '<p>Перейдите по ссылке <a href="/my-bets.php?id=<?php echo $getarrwinner["usersid"]; ?>">мои ставки</a>,
    21. чтобы связаться с автором объявления</p>' .
    22. '<small>Интернет Аукцион "YetiCave"</small>'.
    23. ' </body>' .
    24. '</html>'
    25. );
    26. $message->addPart('Welcome to Mailtrap, now your test emails will be safe', 'text/html');
    27. $mailer->send($message);}
    28. catch (exception $e) {
    29.     print "something went wrong, caught yah! n";
    30. }
    31.  
    32. ?>
     
  4. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    @victor_orlov, очень похоже, что версия компонента swiftmailer, не совместима с версией PHP.
    Подробнее
    То есть в "почтовике" использован устаревший и уже запрещённый для использования вариант объявления конструктора класса через одноименную функцию.
    Вероятно, поможет приведённая в первом сообщении альтернатива:
    PHP:
    1. $transport = \Swift_MailTransport::newInstance(/* с параметрами */);
    Если нет - требуется обновление либо GitHub - swiftmailer/swiftmailer: Comprehensive mailing tools for PHP, либо OSPanel, в надежде, что обновится заодно и почтовик.