diff --git a/app/src/main/java/eu/faircode/email/EmailProvider.java b/app/src/main/java/eu/faircode/email/EmailProvider.java
index 03eec79c4c..430943d73b 100644
--- a/app/src/main/java/eu/faircode/email/EmailProvider.java
+++ b/app/src/main/java/eu/faircode/email/EmailProvider.java
@@ -736,8 +736,8 @@ public class EmailProvider implements Parcelable {
EntityLog.log(context, "Parsing " + url);
- boolean imap = false;
- boolean smtp = false;
+ boolean imap = false, hasImap = false;
+ boolean smtp = false, hasSmtp = false;
String href = null;
String title = null;
int eventType = xml.getEventType();
@@ -763,7 +763,7 @@ public class EmailProvider implements Parcelable {
// OAuth2
// password-cleartext
//
- imap = "imap".equals(xml.getAttributeValue(null, "type"));
+ imap = !hasImap && "imap".equals(xml.getAttributeValue(null, "type"));
} else if ("outgoingServer".equals(name)) {
//
@@ -774,7 +774,7 @@ public class EmailProvider implements Parcelable {
// OAuth2
// password-cleartext
//
- smtp = "smtp".equals(xml.getAttributeValue(null, "type"));
+ smtp = !hasSmtp && "smtp".equals(xml.getAttributeValue(null, "type"));
} else if ("hostname".equals(name)) {
eventType = xml.next();
@@ -874,13 +874,13 @@ public class EmailProvider implements Parcelable {
} else if (eventType == XmlPullParser.END_TAG) {
String name = xml.getName();
- if ("incomingServer".equals(name))
+ if ("incomingServer".equals(name)) {
+ hasImap = true;
imap = false;
-
- else if ("outgoingServer".equals(name))
+ } else if ("outgoingServer".equals(name)) {
+ hasSmtp = true;
smtp = false;
-
- else if ("enable".equals(name) || "documentation".equals(name)) {
+ } else if ("enable".equals(name) || "documentation".equals(name)) {
if (href != null) {
if (title == null)
title = href;