function SMTP::startTLS
Search API
5.x SMTP.php | public SMTP::startTLS() |
Initiate a TLS (encrypted) session.
Return value
bool
File
- inc/
PHPMailer/ src/ SMTP.php, line 384
Class
- SMTP
- PHPMailer RFC821 SMTP email transport class. Implements RFC 821 SMTP commands and provides some utility methods for sending mail to an SMTP server.
Code
public function startTLS() {
if (!$this->sendCommand('STARTTLS', 'STARTTLS', 220)) {
return false;
}
//Allow the best TLS version(s) we can
$crypto_method = STREAM_CRYPTO_METHOD_TLS_CLIENT;
//PHP 5.6.7 dropped inclusion of TLS 1.1 and 1.2 in STREAM_CRYPTO_METHOD_TLS_CLIENT
//so add them back in manually if we can
if (defined('STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT')) {
$crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT;
$crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT;
}
// Begin encrypted connection
set_error_handler([$this 'errorHandler']);
$crypto_ok = stream_socket_enable_crypto($this->smtp_conn, true, $crypto_method);
restore_error_handler();
return (bool) $crypto_ok;
}