2014-09-24 7 views
11

SwiftMailer를 사용하여 SMTP로 전자 메일을 보내고 있습니다. 라이브러리는 PHP 버전 5.4로 서버에서 실행될 때 잘 동작합니다. 그러나, PHP 버전 5.5 서버를 업그레이드 한 후, 이메일이 전송되지 않았습니다 서버는 다음과 같은 오류 던졌다 :

Undefined property: Swift_Transport_StreamBuffer::$_sequence 

가 어떻게이 문제를 해결할 수 있습니까? 감사.

+0

또한 그 Swiftmailer의 버전, 말 해주세요 와 연관되다. 또한 버그 보고서가 존재하는지 확인하고 버그 보고서가 없으면 확인하십시오. 그런 다음 답을 참고하십시오. – hakre

+0

문제가보고되었습니다. 2013 년 8 월 - https://github.com/swiftmailer/swiftmailer/issues/361 - 신고 할 필요가 없습니다. 또한 오래된 Swiftmailer 라이브러리를 사용한다면 * 패치를 제공 할 필요가 없습니다. ** 어떤 버전입니까? ** – hakre

답변

3

내가 다음을 수행하여 문제를 해결 한 : 아래 그림과 같이

열기 lib 디렉토리/클래스/스위프트/운송/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; 
... 
20

변화 swift-mailer/classes/Swift/ByteStream/AbstractFilterableInputStream.php에서

,

protected $_sequence = 0; 

에 그런 다음 메시지가 사라집니다.

이전 버전 프로젝트와 다른 버전의 Swiftmailer를 사용해야합니다. 정확히 동일한 오류 통지를 받았습니다. 내 Swift::VERSION4.1.1입니다.

+2

댓글에서 읽을 수 있듯이 최신 버전의 Swiftmailer에서는 hakre가 정확히 설명하는 방식으로 변수가 변경됩니다. https://github.com/swiftmailer/swiftmailer/issues/ 361 – Daan

+0

멋진 수정, 그것은 완벽하게 작동했습니다. – Kruser

+0

이것은 나를 위해 일했습니다. 감사 – Wahome

0

변화는 이러한 파일을 모두 수행해야합니다 :

  • 신속 메일 발송/클래스/스위프트/바이트 스트림/AbstractFilterableInputStream.php
  • lib 디렉토리/클래스/스위프트/운송/StreamBuffer.php

하나를 변경 한 후 내가 가지고이 :

은 는

PHP Fatal error: Access level to Swift_Transport_StreamBuffer::$_sequence must be protected (as in class Swift_ByteStream_AbstractFilterableInputStream) or weaker in /opt/viptel/recorder/lib/classes/Swift/Transport/StreamBuffer.php on line 20