Я использую 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
,
Я решил проблему, выполнив следующие действия:
открыто Библиотека / классы / Swift / Транспорт / StreamBuffer.php
добавлять приватная последовательность в классе, как показано ниже:
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 :: $ _ последовательность должна быть защищена (как в
класс Swift_ByteStream_AbstractFilterableInputStream) или более слабый в
/opt/viptel/recorder/lib/classes/Swift/Transport/StreamBuffer.php on
строка 20