13

我正在使用 SwiftMailer 通过 SMTP 发送电子邮件。该库在使用 PHP 5.4 版的服务器中运行时运行良好。但是,将服务器升级到 PHP 5.5 版后,没有发送电子邮件,服务器抛出以下错误:

Undefined property: Swift_Transport_StreamBuffer::$_sequence

我该如何解决这个问题?谢谢。

4

3 回答 3

25

swift-mailer/classes/Swift/ByteStream/AbstractFilterableInputStream.php变化中

 private $_sequence = 0;

 protected $_sequence = 0;

然后消息消失。

我必须在遗留项目中使用与您不同版本的 Swiftmailer 我收到了完全相同的错误通知。我Swift::VERSION的是4.1.1

于 2014-09-26T07:13:58.870 回答
4

我已通过执行以下操作解决了该问题:

打开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;
...
于 2014-09-24T15:34:06.410 回答
0

必须在这两个文件中进行更改:

  • swift-mailer/classes/Swift/ByteStream/AbstractFilterableInputStream.php
  • lib/classes/Swift/Transport/StreamBuffer.php

只换了一个后,我得到了这个:

PHP 致命错误:必须保护 Swift_Transport_StreamBuffer::$_sequence 的访问级别(如 Swift_ByteStream_AbstractFilterableInputStream 类)或在第 20 行的 /opt/viptel/recorder/lib/classes/Swift/Transport/StreamBuffer.php 中更弱

于 2016-02-16T07:03:55.853 回答