You've already forked mailcow-dockerized
mirror of
https://github.com/mailcow/mailcow-dockerized.git
synced 2025-06-27 00:51:24 +02:00
Merge pull request #427 from mkuron/clientconfig2
Client configuration guides
This commit is contained in:
@ -62,17 +62,17 @@ function hasMailboxObjectAccess($username, $role, $object) {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function pem_to_der($pem_key) {
|
||||
// Need to remove BEGIN/END PUBLIC KEY
|
||||
$lines = explode("\n", trim($pem_key));
|
||||
unset($lines[count($lines)-1]);
|
||||
unset($lines[0]);
|
||||
return base64_decode(implode('', $lines));
|
||||
}
|
||||
function generate_tlsa_digest($hostname, $port, $starttls = null) {
|
||||
if (!is_valid_domain_name($hostname)) {
|
||||
return "Not a valid hostname";
|
||||
}
|
||||
function pem_to_der($pem_key) {
|
||||
// Need to remove BEGIN/END PUBLIC KEY
|
||||
$lines = explode("\n", trim($pem_key));
|
||||
unset($lines[count($lines)-1]);
|
||||
unset($lines[0]);
|
||||
return base64_decode(implode('', $lines));
|
||||
}
|
||||
|
||||
if (empty($starttls)) {
|
||||
$context = stream_context_create(array("ssl" => array("capture_peer_cert" => true, 'verify_peer' => false, 'allow_self_signed' => true)));
|
||||
@ -88,20 +88,24 @@ function generate_tlsa_digest($hostname, $port, $starttls = null) {
|
||||
return $error_nr . ': ' . $error_msg;
|
||||
}
|
||||
$banner = fread($stream, 512 );
|
||||
if (preg_match("/^220/i", $banner)) {
|
||||
if (preg_match("/^220/i", $banner)) { // SMTP
|
||||
fwrite($stream,"HELO tlsa.generator.local\r\n");
|
||||
fread($stream, 512);
|
||||
fwrite($stream,"STARTTLS\r\n");
|
||||
fread($stream, 512);
|
||||
}
|
||||
elseif (preg_match("/imap.+starttls/i", $banner)) {
|
||||
elseif (preg_match("/imap.+starttls/i", $banner)) { // IMAP
|
||||
fwrite($stream,"A1 STARTTLS\r\n");
|
||||
fread($stream, 512);
|
||||
}
|
||||
elseif (preg_match("/^\+OK/", $banner)) {
|
||||
elseif (preg_match("/^\+OK/", $banner)) { // POP3
|
||||
fwrite($stream,"STLS\r\n");
|
||||
fread($stream, 512);
|
||||
}
|
||||
elseif (preg_match("/^OK/m", $banner)) { // Sieve
|
||||
fwrite($stream,"STARTTLS\r\n");
|
||||
fread($stream, 512);
|
||||
}
|
||||
else {
|
||||
return 'Unknown banner: "' . htmlspecialchars(trim($banner)) . '"';
|
||||
}
|
||||
|
Reference in New Issue
Block a user