From 2c6f3cbd6c5d931ea63d45d87d11cb5c0ca1f179 Mon Sep 17 00:00:00 2001
From: "flipflop.Joe" <b.vauk@sitemind.de>
Date: Sat, 14 Apr 2018 22:31:43 +0200
Subject: [PATCH] fixes #921: do not change seen/unseen flag by connecting to
 imap with /readonly flag

---
 modules/Settings/MailConverter/handlers/MailBox.php | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/modules/Settings/MailConverter/handlers/MailBox.php b/modules/Settings/MailConverter/handlers/MailBox.php
index 2d209c874..267f0f3db 100644
--- a/modules/Settings/MailConverter/handlers/MailBox.php
+++ b/modules/Settings/MailConverter/handlers/MailBox.php
@@ -64,6 +64,8 @@ class Vtiger_MailBox {
 			$this->_mailboxsettings['server'] = $serverPort[0];
 		}
 		$this->_mailboxsettings['port'] = $port;
+		
+		if($this->_scannerinfo->markas == "UNCHANGED") $this->_mailboxsettings['readonly'] = "/readonly";
 	}
 
 	/**
@@ -77,6 +79,7 @@ class Vtiger_MailBox {
 		// Connect using last successful url
 		if($mailboxsettings['connecturl']) {
 			$connecturl = $mailboxsettings['connecturl'];
+			if($mailboxsettings['readonly']) $connecturl = str_replace("}", "/readonly}", $connecturl);
 			$this->log("Trying to connect using connecturl $connecturl$folder", true);
 			$imap = @imap_open("$connecturl$folder", $mailboxsettings['username'], $mailboxsettings['password']);
 			if($imap) {
@@ -89,8 +92,8 @@ class Vtiger_MailBox {
 		}
 
 		if(!$imap) {
-			$connectString = '{'. "$mailboxsettings[server]:$mailboxsettings[port]/$mailboxsettings[protocol]/$mailboxsettings[ssltype]/$mailboxsettings[sslmethod]" ."}";
-			$connectStringShort = '{'. "$mailboxsettings[server]/$mailboxsettings[protocol]:$mailboxsettings[port]" ."}";
+			$connectString = '{'. "$mailboxsettings[server]:$mailboxsettings[port]/$mailboxsettings[protocol]/$mailboxsettings[ssltype]/$mailboxsettings[sslmethod]" .$mailboxsettings[readonly] ."}";
+			$connectStringShort = '{'. "$mailboxsettings[server]/$mailboxsettings[protocol]:$mailboxsettings[port]" .$mailboxsettings[readonly] ."}";
 
 			$this->log("Trying to connect using $connectString$folder", true);
 			if(!$imap = @imap_open("$connectString$folder", $mailboxsettings[username], $mailboxsettings[password])) {
-- 
GitLab