emersion / hydroxide

A third-party, open-source ProtonMail CardDAV, IMAP and SMTP bridge
MIT License
1.64k stars 126 forks source link

Apple Mail on iOS Cannot Get Mail #180

Open heywoodlh opened 3 years ago

heywoodlh commented 3 years ago

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:

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 ```bash * 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 "" 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 "" logged out via IMAP ```

So to clarify my questions:

In case more info is necessary about my deployment, I wrote a blog post on my setup:

https://the-empire.systems/protonmail-bridge-mobile

kthchew commented 3 years ago

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.

heywoodlh commented 3 years ago

Thanks for the tip @kthchew. I removed that conditional in my Docker image and it is working now!