protected function starttls()
    {
        $in = "STARTTLS" . $this->CRLF;
        $code = $this->pushStack($in);
        if ($code !== '220'){
            throw new CodeException('220', $code, array_pop($this->resultStack));
        }

        if ($this->secure !== 'tls' && version_compare(phpversion(), '5.6.0', '<')) {
            throw new CryptoException('Crypto type expected PHP 5.6 or greater');
        }

        switch ($this->secure) {
            case 'tlsv1.0':
                $crypto_type = STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT;
                break;
            case 'tlsv1.1':
                $crypto_type = STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT;
                break;
            case 'tlsv1.2':
                $crypto_type = STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT;
                break;
            default:
                $crypto_type = STREAM_CRYPTO_METHOD_TLS_CLIENT;
                break;
        }

        if(!\stream_socket_enable_crypto($this->smtp, true, $crypto_type)) {
            throw new CryptoException("Start TLS failed to enable crypto");
        }
        return $this;
    }
protected function starttls()
    {
        $in = "STARTTLS" . $this->CRLF;
        $code = $this->pushStack($in);
        if ($code !== '220'){
            throw new CodeException('220', $code, array_pop($this->resultStack));
        }

        if ($this->secure !== 'tls' && version_compare(phpversion(), '5.6.0', '<')) {
            throw new CryptoException('Crypto type expected PHP 5.6 or greater');
        }

        switch ($this->secure) {
            case 'tlsv1.0':
                $crypto_type = STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT;
                break;
            case 'tlsv1.1':
                $crypto_type = STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT;
                break;
            case 'tlsv1.2':
                $crypto_type = STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT;
                break;
            default:
                $crypto_type = STREAM_CRYPTO_METHOD_TLS_CLIENT;
                break;
        }

        if(!\stream_socket_enable_crypto($this->smtp, true, $crypto_type)) {
            throw new CryptoException("Start TLS failed to enable crypto");
        }
        return $this;
    }
protected function starttls ( ) { $ in = "STARTTLS" . $ this -> CRLF ; $ code = $ this -> pushStack ( $ in ) ; if ( $ code !== '220' ) { throw new CodeException ( '220' , $ code , array_pop ( $ this -> resultStack ) ) ; } if ( $ this -> secure !== 'tls' && version_compare ( phpversion ( ) , '5.6.0' , '<' ) ) { throw new CryptoException ( 'Crypto type expected PHP 5.6 or greater' ) ; } switch ( $ this -> secure ) { case 'tlsv1.0' : $ crypto_type = STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT ; break ; case 'tlsv1.1' : $ crypto_type = STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT ; break ; case 'tlsv1.2' : $ crypto_type = STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT ; break ; default : $ crypto_type = STREAM_CRYPTO_METHOD_TLS_CLIENT ; break ; } if ( ! \ stream_socket_enable_crypto ( $ this -> smtp , true , $ crypto_type ) ) { throw new CryptoException ( "Start TLS failed to enable crypto" ) ; } return $ this ; }
SMTP STARTTLS
SUCCESS 220
@return $this
@throws CodeException
@throws CryptoException
@throws SMTPException
SMTP STARTTLS SUCCESS 220