diff options
Diffstat (limited to 'phpBB/includes')
| -rw-r--r-- | phpBB/includes/acp/acp_board.php | 3 | ||||
| -rw-r--r-- | phpBB/includes/functions_messenger.php | 13 | 
2 files changed, 15 insertions, 1 deletions
diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index c8f6f426c6..d9e30320af 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -454,6 +454,9 @@ class acp_board  						'smtp_auth_method'		=> array('lang' => 'SMTP_AUTH_METHOD',		'validate' => 'string',	'type' => 'select', 'method' => 'mail_auth_select', 'explain' => true),  						'smtp_username'			=> array('lang' => 'SMTP_USERNAME',			'validate' => 'string',	'type' => 'text:25:255', 'explain' => true),  						'smtp_password'			=> array('lang' => 'SMTP_PASSWORD',			'validate' => 'string',	'type' => 'password:25:255', 'explain' => true), +						'smtp_verify_peer'		=> array('lang' => 'SMTP_VERIFY_PEER',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true), +						'smtp_verify_peer_name'	=> array('lang' => 'SMTP_VERIFY_PEER_NAME',	'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true), +						'smtp_allow_self_signed'=> array('lang' => 'SMTP_ALLOW_SELF_SIGNED','validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),  						'legend3'					=> 'ACP_SUBMIT_CHANGES',  					) diff --git a/phpBB/includes/functions_messenger.php b/phpBB/includes/functions_messenger.php index f141637fb9..a6e4cb0679 100644 --- a/phpBB/includes/functions_messenger.php +++ b/phpBB/includes/functions_messenger.php @@ -1046,7 +1046,18 @@ function smtpmail($addresses, $subject, $message, &$err_msg, $headers = false)  	}  	$collector = new \phpbb\error_collector;  	$collector->install(); -	$smtp->socket = fsockopen($config['smtp_host'], $config['smtp_port'], $errno, $errstr, 20); + +	$options = array(); +	$verify_peer = (bool) $config['smtp_verify_peer']; +	$verify_peer_name = (bool) $config['smtp_verify_peer_name']; +	$allow_self_signed = (bool) $config['smtp_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();  	$error_contents = $collector->format_errors();  | 
