Flarum的mail邮箱在PHP8+版本报错修复

报错输出内容:

Deprecated: Callables of the form [“Swift_SmtpTransport”, “Swift_Transport_EsmtpTransport::__construct”] are deprecated in /www/wwwroot/XXX.com/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SmtpTransport.php on line 36

解决方案

进入目录/www/wwwroot/XXX.com/vendor/swiftmailer/swiftmailer/lib/classes/Swift/修改以下三个文件

Message.php

  \call_user_func_array(
            [$this, 'Swift_Mime_SimpleMessage::__construct'],
             Swift_DependencyContainer::getInstance()
                 ->createDependenciesFor('mime.message')
             );

修改为

$dependencies = Swift_DependencyContainer::getInstance()
->createDependenciesFor('mime.message');
parent::__construct(…$dependencies);

SmtpTransport.php

\call_user_func_array(
[$this, 'Swift_Transport_EsmtpTransport::__construct'],
 Swift_DependencyContainer::getInstance()
 ->createDependenciesFor('transport.smtp')
 );

修改为

  // 获取依赖项
    $dependencies = Swift_DependencyContainer::getInstance()
        ->createDependenciesFor('transport.smtp');

    // 使用展开操作符调用父类构造函数
    parent::__construct(...$dependencies);

SpoolTransport.php

  $arguments = Swift_DependencyContainer::getInstance()
             ->createDependenciesFor('transport.spool');

         $arguments[] = $spool;

         \call_user_func_array(
             [$this, 'Swift_Transport_SpoolTransport::__construct'],
             $arguments
         );

修改为

$arguments = Swift_DependencyContainer::getInstance()
            ->createDependenciesFor('transport.spool');
    

SwiftException.php

parent::__construct($message, $code, $previous);

修改为

parent::__construct($message, $code ?? 0, $previous);
本网站所收集的公开资料部分来源于互联网,其版权归原作者本人所有,本站只是转载和摘录,目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其的真实性能做到合理的研判负责,也不构成任何其他建议,如果有任何侵犯您权益和知识产权的地方,请来邮或来电告知本站,经过核实,我们会及时的进行整理删除,谢谢!
评论 共0条
取消回复 发布评论