我正在使用 SwiftMailer 通过 SMTP 发送电子邮件。该库在使用 PHP 5.4 版的服务器中运行时运行良好。但是,将服务器升级到 PHP 5.5 版后,没有发送电子邮件,服务器抛出以下错误:
Undefined property: Swift_Transport_StreamBuffer::$_sequence
我该如何解决这个问题?谢谢。
我正在使用 SwiftMailer 通过 SMTP 发送电子邮件。该库在使用 PHP 5.4 版的服务器中运行时运行良好。但是,将服务器升级到 PHP 5.5 版后,没有发送电子邮件,服务器抛出以下错误:
Undefined property: Swift_Transport_StreamBuffer::$_sequence
我该如何解决这个问题?谢谢。
swift-mailer/classes/Swift/ByteStream/AbstractFilterableInputStream.php
变化中
private $_sequence = 0;
至
protected $_sequence = 0;
然后消息消失。
我必须在遗留项目中使用与您不同版本的 Swiftmailer 我收到了完全相同的错误通知。我Swift::VERSION
的是4.1.1
。
我已通过执行以下操作解决了该问题:
打开lib/classes/Swift/Transport/StreamBuffer.php
在类中添加私有$_sequence,如下图:
class Swift_Transport_StreamBuffer extends Swift_ByteStream_AbstractFilterableInputStream implements Swift_Transport_IoBuffer
{
private $_sequence; /** added to fix the undefined property error **/
/** A primary socket */
private $_stream;
/** The input stream */
private $_in;
...
必须在这两个文件中进行更改:
只换了一个后,我得到了这个:
PHP 致命错误:必须保护 Swift_Transport_StreamBuffer::$_sequence 的访问级别(如 Swift_ByteStream_AbstractFilterableInputStream 类)或在第 20 行的 /opt/viptel/recorder/lib/classes/Swift/Transport/StreamBuffer.php 中更弱