diff -urN ../Roundcube_TLS_Icon-1.3.1.orig/tls_icon.php ./tls_icon.php --- ../Roundcube_TLS_Icon-1.3.1.orig/tls_icon.php 2023-03-06 22:02:41.000000000 +0200 +++ ./tls_icon.php 2024-04-22 16:05:26.425546000 +0300 @@ -5,6 +5,8 @@ const POSTFIX_TLS_REGEX = "/\(using (TLS.*)\) \(/im"; const POSTFIX_LOCAL_REGEX = "/\([a-zA-Z]*, from userid [0-9]*\)/im"; const SENDMAIL_TLS_REGEX = "/\(version=(TLS.*)\)(\s+for|;)/im"; + const EXIM_TLS_REGEX = "/with (utf8)?esmtpsa? +\(TLS.*\)/im"; + const EXIM_LOCAL_REGEX = "/from \S+ by \S+ with local/im"; private $message_headers_done = false; private $icon_img; @@ -59,11 +61,17 @@ return $p; } - if (preg_match_all(tls_icon::POSTFIX_TLS_REGEX, $Received, $items, PREG_PATTERN_ORDER) || - preg_match_all(tls_icon::SENDMAIL_TLS_REGEX, $Received, $items, PREG_PATTERN_ORDER)) { + if ( + preg_match_all(tls_icon::POSTFIX_TLS_REGEX, $Received, $items, PREG_PATTERN_ORDER) || + preg_match_all(tls_icon::SENDMAIL_TLS_REGEX, $Received, $items, PREG_PATTERN_ORDER) || + preg_match_all(tls_icon::EXIM_TLS_REGEX, $Received, $items, PREG_PATTERN_ORDER) + ) { $data = $items[1][0]; $this->icon_img .= ''; - } elseif (preg_match_all(tls_icon::POSTFIX_LOCAL_REGEX, $Received, $items, PREG_PATTERN_ORDER)) { + } elseif ( + preg_match_all(tls_icon::POSTFIX_LOCAL_REGEX, $Received, $items, PREG_PATTERN_ORDER) || + preg_match_all(tls_icon::EXIM_LOCAL_REGEX, $Received, $items, PREG_PATTERN_ORDER) + ) { $this->icon_img .= ''; } else { // TODO: Mails received from localhost but without TLS are currently flagged insecure