src/core/framework/core/3rdparty/ezcomponents/Mail/src/parser/parts/file_parser.php
private function appendStreamFilters( $line )
    {
        // append the correct decoding filter
        switch ( strtolower( $this->headers['Content-Transfer-Encoding'] ) )
        {
            case 'base64':
                stream_filter_append( $this->fp, 'convert.base64-decode' );
                break;
            case 'quoted-printable':
                // fetch the type of linebreak
                preg_match( "/(\r\n|\r|\n)$/", $line, $matches );
                $lb = count( $matches ) > 0 ? $matches[0] : ezcMailTools::lineBreak();

                $param = array( 'line-break-chars' => $lb );
                stream_filter_append( $this->fp, 'convert.quoted-printable-decode',
                                      STREAM_FILTER_WRITE, $param );
                break;
            case '7bit':
            case '8bit':
                // do nothing here, file is already just binary
                break;
            default:
                // 7bit default
                break;
        }
    }
private function appendStreamFilters( $line )
    {
        // append the correct decoding filter
        switch ( strtolower( $this->headers['Content-Transfer-Encoding'] ) )
        {
            case 'base64':
                stream_filter_append( $this->fp, 'convert.base64-decode' );
                break;
            case 'quoted-printable':
                // fetch the type of linebreak
                preg_match( "/(\r\n|\r|\n)$/", $line, $matches );
                $lb = count( $matches ) > 0 ? $matches[0] : ezcMailTools::lineBreak();

                $param = array( 'line-break-chars' => $lb );
                stream_filter_append( $this->fp, 'convert.quoted-printable-decode',
                                      STREAM_FILTER_WRITE, $param );
                break;
            case '7bit':
            case '8bit':
                // do nothing here, file is already just binary
                break;
            default:
                // 7bit default
                break;
        }
    }
private function appendStreamFilters ( $ line ) { // append the correct decoding filter switch ( strtolower ( $ this -> headers [ 'Content-Transfer-Encoding' ] ) ) { case 'base64' : stream_filter_append ( $ this -> fp , 'convert.base64-decode' ) ; break ; case 'quoted-printable' : // fetch the type of linebreak preg_match ( "/(\r\n|\r|\n)$/" , $ line , $ matches ) ; $ lb = count ( $ matches ) > 0 ? $ matches [ 0 ] : ezcMailTools :: lineBreak ( ) ; $ param = array ( 'line-break-chars' => $ lb ) ; stream_filter_append ( $ this -> fp , 'convert.quoted-printable-decode' , STREAM_FILTER_WRITE , $ param ) ; break ; case '7bit' : case '8bit' : // do nothing here, file is already just binary break ; default : // 7bit default break ; } }
Sets the correct stream filters for the attachment.

$line should contain one line of data that should be written to file.
It is used to correctly determine the type of linebreak used in the mail.

@param string $line
Sets the correct stream filters for the attachment .