diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -75,7 +75,7 @@
set(KMAILTRANSPORT_LIB_VERSION "5.11.40")
set(CALENDARUTILS_LIB_VERSION "5.11.40")
set(KDAV_LIB_VERSION "5.11.40")
-set(KIMAP_LIB_VERSION "5.11.40")
+set(KIMAP_LIB_VERSION "5.11.41")
set(KMBOX_LIB_VERSION "5.11.40")
set(AKONADICALENDAR_LIB_VERSION "5.11.40")
set(KONTACTINTERFACE_LIB_VERSION "5.11.40")
diff --git a/resources/imap/imapaccount.h b/resources/imap/imapaccount.h
--- a/resources/imap/imapaccount.h
+++ b/resources/imap/imapaccount.h
@@ -55,12 +55,16 @@
void setTimeout(int timeout);
int timeout() const;
+ void setUseNetworkProxy(bool useProxy);
+ bool useNetworkProxy() const;
+
private:
QString m_name;
QString m_server;
quint16 m_port = 0;
QString m_userName;
int m_timeout = 30;
+ bool m_useProxy = false;
KIMAP::LoginJob::EncryptionMode m_encryption;
KIMAP::LoginJob::AuthenticationMode m_authentication;
bool m_subscriptionEnabled = false;
diff --git a/resources/imap/imapaccount.cpp b/resources/imap/imapaccount.cpp
--- a/resources/imap/imapaccount.cpp
+++ b/resources/imap/imapaccount.cpp
@@ -104,3 +104,13 @@
{
return m_timeout;
}
+
+void ImapAccount::setUseNetworkProxy(bool useProxy)
+{
+ m_useProxy = useProxy;
+}
+
+bool ImapAccount::useNetworkProxy() const
+{
+ return m_useProxy;
+}
diff --git a/resources/imap/imapresource.kcfg b/resources/imap/imapresource.kcfg
--- a/resources/imap/imapresource.kcfg
+++ b/resources/imap/imapresource.kcfg
@@ -34,6 +34,11 @@
30
+
+
+ If checked, the system proxy settings will be used to connect to the mail server.
+ false
+
diff --git a/resources/imap/sessionpool.cpp b/resources/imap/sessionpool.cpp
--- a/resources/imap/sessionpool.cpp
+++ b/resources/imap/sessionpool.cpp
@@ -365,6 +365,7 @@
QObject::connect(session, &QObject::destroyed, this, &SessionPool::onSessionDestroyed);
session->setUiProxy(m_sessionUiProxy);
session->setTimeout(m_account->timeout());
+ session->setUseNetworkProxy(m_account->useNetworkProxy());
m_connectingPool << session;
}
diff --git a/resources/imap/settings.cpp b/resources/imap/settings.cpp
--- a/resources/imap/settings.cpp
+++ b/resources/imap/settings.cpp
@@ -240,6 +240,7 @@
account->setUserName(userName());
account->setSubscriptionEnabled(subscriptionEnabled());
+ account->setUseNetworkProxy(useProxy());
const QString encryption = safety();
if (encryption == QLatin1String("SSL")) {
diff --git a/resources/imap/setupserver.cpp b/resources/imap/setupserver.cpp
--- a/resources/imap/setupserver.cpp
+++ b/resources/imap/setupserver.cpp
@@ -317,6 +317,7 @@
m_parentResource->settings()->setSubscriptionEnabled(m_ui->subscriptionEnabled->isChecked());
m_parentResource->settings()->setIntervalCheckTime(m_ui->checkInterval->value());
m_parentResource->settings()->setDisconnectedModeEnabled(m_ui->disconnectedModeEnabled->isChecked());
+ m_parentResource->settings()->setUseProxy(m_ui->useProxyCheck->isChecked());
MailTransport::Transport::EnumAuthenticationType::type alternateAuthtype = getCurrentAuthMode(m_ui->authenticationAlternateCombo);
qCDebug(IMAPRESOURCE_LOG) << "saving Alternate server sieve auth mode: " << authenticationModeString(alternateAuthtype);
@@ -433,6 +434,7 @@
m_ui->checkInterval->setValue(m_parentResource->settings()->intervalCheckTime());
m_ui->disconnectedModeEnabled->setChecked(m_parentResource->settings()->disconnectedModeEnabled());
+ m_ui->useProxyCheck->setChecked(m_parentResource->settings()->useProxy());
m_ui->managesieveCheck->setChecked(m_parentResource->settings()->sieveSupport());
m_ui->sameConfigCheck->setChecked(m_parentResource->settings()->sieveReuseConfig());
diff --git a/resources/imap/setupserverview_desktop.ui b/resources/imap/setupserverview_desktop.ui
--- a/resources/imap/setupserverview_desktop.ui
+++ b/resources/imap/setupserverview_desktop.ui
@@ -605,6 +605,13 @@
+ -
+
+
+ Connect using the system proxy settings
+
+
+