mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-11 13:58:54 +00:00
[ticket/13558] Make SSL context specific options more SMTP general
PHPBB3-13558
This commit is contained in:
parent
ac87784a11
commit
2cc9b6a857
1 changed files with 12 additions and 12 deletions
|
@ -1046,7 +1046,18 @@ function smtpmail($addresses, $subject, $message, &$err_msg, $headers = false)
|
||||||
}
|
}
|
||||||
$collector = new \phpbb\error_collector;
|
$collector = new \phpbb\error_collector;
|
||||||
$collector->install();
|
$collector->install();
|
||||||
$smtp->socket = fsockopen($config['smtp_host'], $config['smtp_port'], $errno, $errstr, 20);
|
|
||||||
|
$options = array();
|
||||||
|
$verify_peer = (bool) $config['ssl_verify_peer'];
|
||||||
|
$verify_peer_name = (bool) $config['ssl_verify_peer_name'];
|
||||||
|
$allow_self_signed = (bool) $config['ssl_allow_self_signed'];
|
||||||
|
$remote_socket = $config['smtp_host'] . ':' . $config['smtp_port'];
|
||||||
|
|
||||||
|
// Set ssl context options, see http://php.net/manual/en/context.ssl.php
|
||||||
|
$options['ssl'] = array('verify_peer' => $verify_peer, 'verify_peer_name' => $verify_peer_name, 'allow_self_signed' => $allow_self_signed);
|
||||||
|
$socket_context = stream_context_create($options);
|
||||||
|
|
||||||
|
$smtp->socket = stream_socket_client($remote_socket, $errno, $errstr, 20, STREAM_CLIENT_CONNECT, $socket_context);
|
||||||
$collector->uninstall();
|
$collector->uninstall();
|
||||||
$error_contents = $collector->format_errors();
|
$error_contents = $collector->format_errors();
|
||||||
|
|
||||||
|
@ -1467,17 +1478,6 @@ class smtp_class
|
||||||
|
|
||||||
if (socket_set_blocking($this->socket, 1))
|
if (socket_set_blocking($this->socket, 1))
|
||||||
{
|
{
|
||||||
global $config;
|
|
||||||
|
|
||||||
$options = array();
|
|
||||||
$verify_peer = (bool) $config['ssl_verify_peer'];
|
|
||||||
$verify_peer_name = (bool) $config['ssl_verify_peer_name'];
|
|
||||||
$allow_self_signed = (bool) $config['ssl_allow_self_signed'];
|
|
||||||
|
|
||||||
// Set ssl context options, see http://php.net/manual/en/context.ssl.php
|
|
||||||
$options['ssl'] = array('verify_peer' => $verify_peer, 'verify_peer_name' => $verify_peer_name, 'allow_self_signed' => $allow_self_signed);
|
|
||||||
stream_context_set_option($this->socket, $options);
|
|
||||||
|
|
||||||
$result = stream_socket_enable_crypto($this->socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);
|
$result = stream_socket_enable_crypto($this->socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);
|
||||||
socket_set_blocking($this->socket, (int) $stream_meta['blocked']);
|
socket_set_blocking($this->socket, (int) $stream_meta['blocked']);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue