У меня был ложный ответ на следующее:
fputs($connection, 'STARTTLS'.$newLine);
Оказывается, я использую неправильную переменную соединения, поэтому мне просто нужно было изменить ее на:
fputs($smtpConnect, 'STARTTLS'.$newLine);
Если вы используете TLS, не забудьте поставить HELO до и после:
fputs($smtpConnect, 'HELO '.$localhost . $newLine);
$response = fgets($smtpConnect, 515);
if($secure == 'tls')
{
fputs($smtpConnect, 'STARTTLS'.$newLine);
$response = fgets($smtpConnect, 515);
stream_socket_enable_crypto($smtpConnect, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);
// Say hello again!
fputs($smtpConnect, 'HELO '.$localhost . $newLine);
$response = fgets($smtpConnect, 515);
}