hydroxide
hydroxide copied to clipboard
Apple Mail on iOS Cannot Get Mail
Hi, thank you for a great project!
I use Hydroxide with aerc
. The setup works perfectly with aerc
. However, when I attempt to use Apple Mail with the same Hydroxide instance on iOS it fails to fetch anything and complains with the following error:
Cannot Get Mail
The mail server “XX.XX.XX.XX” is not responding. Verify that you have entered the correct account info in Mail settings.
When I looked at logs it looked like it was logging in just fine and syncing the folders I was navigating to. Since it works fine in aerc
but not in Apple Mail I’m sure that it’s a client issue in Apple Mail. But my question is why?
I can see that it populated the number of emails in each folder but not the emails themselves.
Some unique points about my setup that may or may not be relevant:
- Running Hydroxide in a Docker container
- I am using Wireguard on my iPhone to secure the connection between my phone and my Hydroxide instance (I don’t think it’s an issue but VPN networking can be a bit wonky on iOS in my experience)
Those two factors aren’t an issue with my aerc
+ Hydroxide setup but I mention it just in case.
The debug log doesn’t seem to have anything super obvious to me, but I’ve attached them anyway:
Debug log
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR AUTH=PLAIN] IMAP4rev1 Service Ready
1 AUTHENTICATE PLAIN
+
1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR MOVE] AUTHENTICATE completed
2 NOOP
2 OK NOOP completed
3 SELECT INBOX
* FLAGS (\Seen \Deleted \Flagged \Draft SIGN_UP_NOTIFICATION)
* OK [PERMANENTFLAGS (\Seen \Deleted \Flagged \Draft SIGN_UP_NOTIFICATION)] Flags permitted.
* OK [UIDVALIDITY 1] UIDs valid
* 0 EXISTS
* 0 RECENT
* OK [UIDNEXT 1] Predicted next UID
3 OK [READ-WRITE] SELECT completed
4 UID SEARCH 1:* NOT DELETED
4 NO search queries with NOT or OR clauses are not yet implemented
5 NOOP
5 OK NOOP completed
6 UID SEARCH 1:* NOT DELETED
6 NO search queries with NOT or OR clauses are not yet implemented
7 NOOP
7 OK NOOP completed
8 UID SEARCH 1:* NOT DELETED
8 NO search queries with NOT or OR clauses are not yet implemented
9 UID SEARCH 1:* UNSEEN
* SEARCH
9 OK UID SEARCH completed
10 UID SEARCH 1:* UNSEEN
* SEARCH
10 OK UID SEARCH completed
11 UID SEARCH 1:* DELETED
* SEARCH
11 OK UID SEARCH completed
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR AUTH=PLAIN] IMAP4rev1 Service Ready
1 AUTHENTICATE PLAIN
+
1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR MOVE] AUTHENTICATE completed
2 NOOP
2 OK NOOP completed
3 SELECT Sent
* FLAGS (\Seen \Deleted \Flagged \Draft SIGN_UP_NOTIFICATION)
* OK [PERMANENTFLAGS (\Seen \Deleted \Flagged \Draft SIGN_UP_NOTIFICATION)] Flags permitted.
* 111 EXISTS
* 0 RECENT
* OK [UIDNEXT 112] Predicted next UID
* OK [UIDVALIDITY 1] UIDs valid
3 OK [READ-WRITE] SELECT completed
4 UID SEARCH 1:* NOT DELETED
4 NO search queries with NOT or OR clauses are not yet implemented
5 NOOP
5 OK NOOP completed
6 UID SEARCH 1:* NOT DELETED
6 NO search queries with NOT or OR clauses are not yet implemented
12 NOOP
7 NOOP
12 OK NOOP completed
13 UID SEARCH 1:* NOT DELETED
13 NO search queries with NOT or OR clauses are not yet implemented
7 OK NOOP completed
14 UID SEARCH 1:* DELETED
* SEARCH
14 OK UID SEARCH completed
8 UID SEARCH 1:* NOT DELETED
8 NO search queries with NOT or OR clauses are not yet implemented
15 NOOP
9 UID SEARCH 1:* UNSEEN
* SEARCH
9 OK UID SEARCH completed
15 OK NOOP completed
16 UID SEARCH 1:* NOT DELETED
16 NO search queries with NOT or OR clauses are not yet implemented
17 UID SEARCH 1:* DELETED
* SEARCH
17 OK UID SEARCH completed
18 NOOP
18 OK NOOP completed
19 UID SEARCH 1:* NOT DELETED
19 NO search queries with NOT or OR clauses are not yet implemented
20 UID SEARCH 1:* DELETED
* SEARCH
20 OK UID SEARCH completed
21 UID SEARCH 1:* UNSEEN
* SEARCH
21 OK UID SEARCH completed
22 UID SEARCH 1:* UNSEEN
* SEARCH
22 OK UID SEARCH completed
10 UID SEARCH 1:* DELETED
* SEARCH
10 OK UID SEARCH completed
11 NOOP
11 OK NOOP completed
12 UID SEARCH 1:* NOT DELETED
12 NO search queries with NOT or OR clauses are not yet implemented
13 UID SEARCH 1:* DELETED
* SEARCH
13 OK UID SEARCH completed
14 NOOP
14 OK NOOP completed
15 UID SEARCH 1:* NOT DELETED
15 NO search queries with NOT or OR clauses are not yet implemented
16 UID SEARCH 1:* DELETED
* SEARCH
16 OK UID SEARCH completed
17 NOOP
17 OK NOOP completed
18 UID SEARCH 1:* NOT DELETED
18 NO search queries with NOT or OR clauses are not yet implemented
19 UID SEARCH 1:* DELETED
* SEARCH
19 OK UID SEARCH completed
20 UID SEARCH 1:* UNSEEN
* SEARCH
20 OK UID SEARCH completed
23 NOOP
23 OK NOOP completed
24 UID SEARCH 1:* NOT DELETED
24 NO search queries with NOT or OR clauses are not yet implemented
25 UID SEARCH 1:* DELETED
* SEARCH
25 OK UID SEARCH completed
26 NOOP
26 OK NOOP completed
27 UID SEARCH 1:* NOT DELETED
27 NO search queries with NOT or OR clauses are not yet implemented
28 UID SEARCH 1:* DELETED
* SEARCH
28 OK UID SEARCH completed
29 NOOP
29 OK NOOP completed
30 UID SEARCH 1:* NOT DELETED
30 NO search queries with NOT or OR clauses are not yet implemented
31 UID SEARCH 1:* DELETED
* SEARCH
31 OK UID SEARCH completed
32 UID SEARCH 1:* UNSEEN
* SEARCH
32 OK UID SEARCH completed
33 NOOP
33 OK NOOP completed
34 UID SEARCH 1:* NOT DELETED
34 NO search queries with NOT or OR clauses are not yet implemented
35 UID SEARCH 1:* DELETED
* SEARCH
35 OK UID SEARCH completed
36 NOOP
36 OK NOOP completed
37 UID SEARCH 1:* NOT DELETED
37 NO search queries with NOT or OR clauses are not yet implemented
38 UID SEARCH 1:* DELETED
* SEARCH
38 OK UID SEARCH completed
39 NOOP
39 OK NOOP completed
40 UID SEARCH 1:* NOT DELETED
40 NO search queries with NOT or OR clauses are not yet implemented
41 UID SEARCH 1:* DELETED
* SEARCH
41 OK UID SEARCH completed
42 UID SEARCH 1:* UNSEEN
* SEARCH
42 OK UID SEARCH completed
2021/06/11 04:41:56 CardDAV server listening on 10.50.50.29:8080
2021/06/11 04:41:56 SMTP server listening on 10.50.50.29:1025
2021/06/11 04:41:56 IMAP server listening on 10.50.50.29:1143
2021/06/11 04:42:04 >> POST /api/auth/refresh
2021/06/11 04:42:04 {"RefreshToken":"06eaec6934d2ef7a9f3eb774f95185e17db03746","ResponseType":"token","GrantType":"refresh_token","RedirectURI":"http://www.protonmail.ch"}
2021/06/11 04:42:04 << POST /api/auth/refresh
2021/06/11 04:42:04 &protonmail.authResp{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Auth:protonmail.Auth{ExpiresAt:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}, Scope:"full self organization payments keys parent user loggedin paid nondelinquent mail calendar drive", UID:"6f56115e446204a7e087d6aa357ef5badd1554bb", AccessToken:"4b3b51876b7860966873b3a6601e67ba87b78254", RefreshToken:"bc73e272ba4613b7b211922b3335b57ee7007dfe", UserID:"", EventID:"", PasswordMode:0, TwoFactor:struct { Enabled int; U2F interface {}; TOTP int }{Enabled:0, U2F:interface {}(nil), TOTP:0}}, ExpiresIn:864000, TokenType:"Bearer", ServerProof:""}
2021/06/11 04:42:04 >> GET /api/addresses
2021/06/11 04:42:05 << GET /api/addresses
2021/06/11 04:42:05 &struct { protonmail.resp; Addresses []*protonmail.Address }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Addresses:[]*protonmail.Address{(*protonmail.Address)(0xc0002dc6e0), (*protonmail.Address)(0xc0002dc780), (*protonmail.Address)(0xc0002dc820), (*protonmail.Address)(0xc0002dc8c0)}}
2021/06/11 04:42:05 >> GET /api/users
2021/06/11 04:42:06 << GET /api/users
2021/06/11 04:42:06 &struct { protonmail.resp; User *protonmail.User }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, User:(*protonmail.User)(0xc000021830)}
2021/06/11 04:42:06 >> GET /api/addresses
2021/06/11 04:42:06 << GET /api/addresses
2021/06/11 04:42:06 &struct { protonmail.resp; Addresses []*protonmail.Address }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Addresses:[]*protonmail.Address{(*protonmail.Address)(0xc0002dcaa0), (*protonmail.Address)(0xc0002dcb40), (*protonmail.Address)(0xc0002dcbe0), (*protonmail.Address)(0xc0002dcc80)}}
2021/06/11 04:42:06 >> GET /api/labels
2021/06/11 04:42:06 << GET /api/labels
2021/06/11 04:42:06 &struct { protonmail.resp; Labels []*protonmail.Label }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Labels:[]*protonmail.Label{(*protonmail.Label)(0xc0002fa0c0), (*protonmail.Label)(0xc0002fa120), (*protonmail.Label)(0xc0002fa180), (*protonmail.Label)(0xc0002fa1e0), (*protonmail.Label)(0xc0002fa240)}}
2021/06/11 04:42:06 >> GET /api/messages/count
2021/06/11 04:42:06 << GET /api/messages/count
2021/06/11 04:42:06 &struct { protonmail.resp; Counts []*protonmail.MessageCount }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Counts:[]*protonmail.MessageCount{(*protonmail.MessageCount)(0xc0003749a0), (*protonmail.MessageCount)(0xc000374ac0), (*protonmail.MessageCount)(0xc000374c80), (*protonmail.MessageCount)(0xc000374ca0), (*protonmail.MessageCount)(0xc000374d00), (*protonmail.MessageCount)(0xc000374d40), (*protonmail.MessageCount)(0xc000374d60), (*protonmail.MessageCount)(0xc000374da0), (*protonmail.MessageCount)(0xc000374e40), (*protonmail.MessageCount)(0xc000374e60), (*protonmail.MessageCount)(0xc000374e80), (*protonmail.MessageCount)(0xc000374ea0), (*protonmail.MessageCount)(0xc000374ec0), (*protonmail.MessageCount)(0xc000374ee0), (*protonmail.MessageCount)(0xc000374f00), (*protonmail.MessageCount)(0xc000374f20)}}
2021/06/11 04:42:06 User "<omitted>" logged in via IMAP
2021/06/11 04:42:06 >> GET /api/events/latest
2021/06/11 04:42:06 << GET /api/events/latest
2021/06/11 04:42:06 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc0000cc400)}
2021/06/11 04:42:07 Synchronizing mailbox INBOX...
2021/06/11 04:42:07 >> GET /api/messages
2021/06/11 04:42:07 << GET /api/messages
2021/06/11 04:42:07 &struct { protonmail.resp; Total int; Messages []*protonmail.Message }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Total:0, Messages:[]*protonmail.Message{}}
2021/06/11 04:42:07 Synchronizing mailbox INBOX: done.
2021/06/11 04:42:07 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:07 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:07 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc0000cc880)}
2021/06/11 04:42:08 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:08 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:08 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc0000cc980)}
2021/06/11 04:42:12 Synchronizing mailbox Sent...
2021/06/11 04:42:12 >> GET /api/messages
2021/06/11 04:42:13 << GET /api/messages
2021/06/11 04:42:13 &struct { protonmail.resp; Total int; Messages []*protonmail.Message }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Total:111, Messages:[]*protonmail.Message{(*protonmail.Message)(0xc0000f9500), (*protonmail.Message)(0xc0000f9680), (*protonmail.Message)(0xc0000f9800), (*protonmail.Message)(0xc0000f9980), (*protonmail.Message)(0xc0000f9b00), (*protonmail.Message)(0xc0000f9c80), (*protonmail.Message)(0xc0000f9e00), (*protonmail.Message)(0xc0001b2000), (*protonmail.Message)(0xc0001b2180), (*protonmail.Message)(0xc0001b2300), (*protonmail.Message)(0xc0001b2480), (*protonmail.Message)(0xc0001b2600), (*protonmail.Message)(0xc0001b2780), (*protonmail.Message)(0xc0001b2900), (*protonmail.Message)(0xc0001b2a80), (*protonmail.Message)(0xc0001b2c00), (*protonmail.Message)(0xc0001b2d80), (*protonmail.Message)(0xc0001b2f00), (*protonmail.Message)(0xc0001b3080), (*protonmail.Message)(0xc0001b3200), (*protonmail.Message)(0xc0001b3380), (*protonmail.Message)(0xc0001b3500), (*protonmail.Message)(0xc0001b3680), (*protonmail.Message)(0xc0001b3800), (*protonmail.Message)(0xc0001b3980), (*protonmail.Message)(0xc0001b3b00), (*protonmail.Message)(0xc0001b3c80), (*protonmail.Message)(0xc0001b3e00), (*protonmail.Message)(0xc0001c4000), (*protonmail.Message)(0xc0001c4180), (*protonmail.Message)(0xc0001c4300), (*protonmail.Message)(0xc0001c4480), (*protonmail.Message)(0xc0001c4600), (*protonmail.Message)(0xc0001c4780), (*protonmail.Message)(0xc0001c4900), (*protonmail.Message)(0xc0001c4a80), (*protonmail.Message)(0xc0001c4c00), (*protonmail.Message)(0xc0001c4d80), (*protonmail.Message)(0xc0001c4f00), (*protonmail.Message)(0xc0001c5080), (*protonmail.Message)(0xc0001c5200), (*protonmail.Message)(0xc0001c5380), (*protonmail.Message)(0xc0001c5500), (*protonmail.Message)(0xc0001c5680), (*protonmail.Message)(0xc0001c5800), (*protonmail.Message)(0xc0001c5980), (*protonmail.Message)(0xc0001c5b00), (*protonmail.Message)(0xc0001c5c80), (*protonmail.Message)(0xc0001c5e00), (*protonmail.Message)(0xc0001c6000), (*protonmail.Message)(0xc0001c6180), (*protonmail.Message)(0xc0001c6300), (*protonmail.Message)(0xc0001c6480), (*protonmail.Message)(0xc0001c6600), (*protonmail.Message)(0xc0001c6780), (*protonmail.Message)(0xc0001c6900), (*protonmail.Message)(0xc0001c6a80), (*protonmail.Message)(0xc0001c6c00), (*protonmail.Message)(0xc0001c6d80), (*protonmail.Message)(0xc0001c6f00), (*protonmail.Message)(0xc0001c7080), (*protonmail.Message)(0xc0001c7200), (*protonmail.Message)(0xc0001c7380), (*protonmail.Message)(0xc0001c7500), (*protonmail.Message)(0xc0001c7680), (*protonmail.Message)(0xc0001c7800), (*protonmail.Message)(0xc0001c7980), (*protonmail.Message)(0xc0001c7b00), (*protonmail.Message)(0xc0001c7c80), (*protonmail.Message)(0xc0001c7e00), (*protonmail.Message)(0xc0001ce000), (*protonmail.Message)(0xc0001ce180), (*protonmail.Message)(0xc0001ce300), (*protonmail.Message)(0xc0001ce480), (*protonmail.Message)(0xc0001ce600), (*protonmail.Message)(0xc0001ce780), (*protonmail.Message)(0xc0001ce900), (*protonmail.Message)(0xc0001cea80), (*protonmail.Message)(0xc0001cec00), (*protonmail.Message)(0xc0001ced80), (*protonmail.Message)(0xc0001cef00), (*protonmail.Message)(0xc0001cf080), (*protonmail.Message)(0xc0001cf200), (*protonmail.Message)(0xc0001cf380), (*protonmail.Message)(0xc0001cf500), (*protonmail.Message)(0xc0001cf680), (*protonmail.Message)(0xc0001cf800), (*protonmail.Message)(0xc0001cf980), (*protonmail.Message)(0xc0001cfb00), (*protonmail.Message)(0xc0001cfc80), (*protonmail.Message)(0xc0001cfe00), (*protonmail.Message)(0xc0001da000), (*protonmail.Message)(0xc0001da180), (*protonmail.Message)(0xc0001da300), (*protonmail.Message)(0xc0001da480), (*protonmail.Message)(0xc0001da600), (*protonmail.Message)(0xc0001da780), (*protonmail.Message)(0xc0001da900), (*protonmail.Message)(0xc0001daa80), (*protonmail.Message)(0xc0001dac00), (*protonmail.Message)(0xc0001dad80), (*protonmail.Message)(0xc0001daf00), (*protonmail.Message)(0xc0001db080), (*protonmail.Message)(0xc0001db200), (*protonmail.Message)(0xc0001db380), (*protonmail.Message)(0xc0001db500), (*protonmail.Message)(0xc0001db680), (*protonmail.Message)(0xc0001db800), (*protonmail.Message)(0xc0001db980), (*protonmail.Message)(0xc0001dbb00), (*protonmail.Message)(0xc0001dbc80)}}
2021/06/11 04:42:13 Synchronizing mailbox Sent: done.
2021/06/11 04:42:13 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:13 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:13 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc0002c7680)}
2021/06/11 04:42:13 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:13 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:13 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc0002c7780)}
2021/06/11 04:42:13 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:14 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:14 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc0002c7880)}
2021/06/11 04:42:14 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:14 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:14 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc0002c7a80)}
2021/06/11 04:42:14 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:15 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:15 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc0002c7c00)}
2021/06/11 04:42:19 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:19 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:19 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc0002c7f00)}
2021/06/11 04:42:20 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:20 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:20 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc000442080)}
2021/06/11 04:42:21 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:21 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:21 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc000442200)}
2021/06/11 04:42:36 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:36 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:42:36 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc000442200)}
2021/06/11 04:43:06 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:43:06 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:43:06 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc000442280)}
2021/06/11 04:43:09 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:43:09 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:43:09 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc000442380)}
2021/06/11 04:43:09 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:43:09 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:43:09 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc000442500)}
2021/06/11 04:43:10 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:43:10 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:43:10 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc000442680)}
2021/06/11 04:43:15 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:43:15 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:43:15 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc000442880)}
2021/06/11 04:43:15 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:43:16 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:43:16 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc000442a00)}
2021/06/11 04:43:16 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:43:16 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:43:16 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc000442b80)}
2021/06/11 04:43:36 >> GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:43:36 << GET /api/events/mqvXooMayYOTjMQSGDGcicVd1aUPGbU1nmFtKMAh8Mcy7Qa91f7Sqyd9BjPXtCNN0C2wnar32pxdTXAbC2rp9g==
2021/06/11 04:43:36 &struct { protonmail.resp; *protonmail.Event }{resp:protonmail.resp{Code:1000, RawAPIError:(*protonmail.RawAPIError)(nil)}, Event:(*protonmail.Event)(0xc000442d80)}
2021/06/11 04:43:40 User "<omitted>" logged out via IMAP
So to clarify my questions:
- Any ideas as to why this is not working with Apple Mail on iOS?
- If it isn’t possible to get working with Apple Mail, are there any alternative email clients vs just the Protonmail app that work on iOS? The ones I tried didn’t seem to work but I’d prefer to just use Apple Mail if possible.
In case more info is necessary about my deployment, I wrote a blog post on my setup:
I also had this issue (with a very similar configuration to you, rootless Docker + WireGuard VPN). I was able to workaround the issue by commenting out the conditional described in #96, and then emails appeared properly.
I don't fully understand the implications of just removing this code, however.
Strangely enough, while this issue affects Mail.app on iOS, Mail.app on macOS just (seemingly) doesn't care at all.
Thanks for the tip @kthchew. I removed that conditional in my Docker image and it is working now!