protected function getAttachmentStream(&$part)
    {
        /** @var resource $temp_fp */
        $temp_fp = tmpfile();

        $headers = $this->getPart('headers', $part);
        $encodingType = array_key_exists('content-transfer-encoding', $headers) ?
            $headers['content-transfer-encoding'] : '';

        if ($temp_fp) {
            if ($this->stream) {
                $start = $part['starting-pos-body'];
                $end = $part['ending-pos-body'];
                fseek($this->stream, $start, SEEK_SET);
                $len = $end - $start;
                $written = 0;
                while ($written < $len) {
                    $write = $len;
                    $data = fread($this->stream, $write);
                    fwrite($temp_fp, $this->decodeContentTransfer($data, $encodingType));
                    $written += $write;
                }
            } elseif ($this->data) {
                $attachment = $this->decodeContentTransfer($this->getPartBodyFromText($part), $encodingType);
                fwrite($temp_fp, $attachment, strlen($attachment));
            }
            fseek($temp_fp, 0, SEEK_SET);
        } else {
            throw new Exception(
                'Could not create temporary files for attachments. Your tmp directory may be unwritable by PHP.'
            );
        }

        return $temp_fp;
    }
protected function getAttachmentStream(&$part)
    {
        /** @var resource $temp_fp */
        $temp_fp = tmpfile();

        $headers = $this->getPart('headers', $part);
        $encodingType = array_key_exists('content-transfer-encoding', $headers) ?
            $headers['content-transfer-encoding'] : '';

        if ($temp_fp) {
            if ($this->stream) {
                $start = $part['starting-pos-body'];
                $end = $part['ending-pos-body'];
                fseek($this->stream, $start, SEEK_SET);
                $len = $end - $start;
                $written = 0;
                while ($written < $len) {
                    $write = $len;
                    $data = fread($this->stream, $write);
                    fwrite($temp_fp, $this->decodeContentTransfer($data, $encodingType));
                    $written += $write;
                }
            } elseif ($this->data) {
                $attachment = $this->decodeContentTransfer($this->getPartBodyFromText($part), $encodingType);
                fwrite($temp_fp, $attachment, strlen($attachment));
            }
            fseek($temp_fp, 0, SEEK_SET);
        } else {
            throw new Exception(
                'Could not create temporary files for attachments. Your tmp directory may be unwritable by PHP.'
            );
        }

        return $temp_fp;
    }
protected function getAttachmentStream ( & $ part ) { /** @var resource $temp_fp */ $ temp_fp = tmpfile ( ) ; $ headers = $ this -> getPart ( 'headers' , $ part ) ; $ encodingType = array_key_exists ( 'content-transfer-encoding' , $ headers ) ? $ headers [ 'content-transfer-encoding' ] : '' ; if ( $ temp_fp ) { if ( $ this -> stream ) { $ start = $ part [ 'starting-pos-body' ] ; $ end = $ part [ 'ending-pos-body' ] ; fseek ( $ this -> stream , $ start , SEEK_SET ) ; $ len = $ end - $ start ; $ written = 0 ; while ( $ written < $ len ) { $ write = $ len ; $ data = fread ( $ this -> stream , $ write ) ; fwrite ( $ temp_fp , $ this -> decodeContentTransfer ( $ data , $ encodingType ) ) ; $ written += $ write ; } } elseif ( $ this -> data ) { $ attachment = $ this -> decodeContentTransfer ( $ this -> getPartBodyFromText ( $ part ) , $ encodingType ) ; fwrite ( $ temp_fp , $ attachment , strlen ( $ attachment ) ) ; } fseek ( $ temp_fp , 0 , SEEK_SET ) ; } else { throw new Exception ( 'Could not create temporary files for attachments. Your tmp directory may be unwritable by PHP.' ) ; } return $ temp_fp ; }
Read the attachment Body and save temporary file resource

@param array $part

@return resource Mime Body Part
@throws Exception
Read the attachment Body and save temporary file resource