Commit dd8d346
This commit fixes an issue where iCloud IMAP accounts would report the correct
email count but return empty message lists when fetching emails.
The root cause was that iCloud's IMAP server requires UID-based operations for
large mailboxes and returns metadata-only responses to certain fetch commands.
Changes:
- Switch from sequence-based to UID-based IMAP operations (uid_search, uid fetch)
- Add multiple fetch format attempts (RFC822, BODY[], BODY.PEEK[], etc.) to handle
different IMAP server implementations
- Detect and handle metadata-only responses from iCloud that contain only
"FETCH (UID XXXXX)" without actual email content
- Update tests to use UID-based operations
This ensures compatibility with iCloud IMAP accounts while maintaining support
for other IMAP providers.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-authored-by: Claude <noreply@anthropic.com>
1 parent 08a2df7 commit dd8d346
File tree
2 files changed
+70
-17
lines changed- mcp_email_server/emails
- tests
2 files changed
+70
-17
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
111 | 111 | | |
112 | 112 | | |
113 | 113 | | |
114 | | - | |
115 | | - | |
116 | 114 | | |
117 | | - | |
118 | | - | |
119 | | - | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
120 | 126 | | |
121 | 127 | | |
122 | 128 | | |
| |||
129 | 135 | | |
130 | 136 | | |
131 | 137 | | |
132 | | - | |
133 | | - | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
134 | 175 | | |
135 | 176 | | |
136 | 177 | | |
137 | 178 | | |
138 | | - | |
139 | | - | |
| 179 | + | |
| 180 | + | |
140 | 181 | | |
141 | 182 | | |
142 | | - | |
143 | | - | |
| 183 | + | |
| 184 | + | |
144 | 185 | | |
145 | | - | |
| 186 | + | |
146 | 187 | | |
147 | 188 | | |
148 | 189 | | |
| |||
220 | 261 | | |
221 | 262 | | |
222 | 263 | | |
223 | | - | |
224 | | - | |
| 264 | + | |
| 265 | + | |
225 | 266 | | |
226 | 267 | | |
227 | 268 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
150 | 150 | | |
151 | 151 | | |
152 | 152 | | |
| 153 | + | |
153 | 154 | | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
154 | 165 | | |
155 | 166 | | |
156 | 167 | | |
| |||
179 | 190 | | |
180 | 191 | | |
181 | 192 | | |
182 | | - | |
183 | | - | |
| 193 | + | |
| 194 | + | |
184 | 195 | | |
185 | 196 | | |
186 | 197 | | |
| |||
194 | 205 | | |
195 | 206 | | |
196 | 207 | | |
| 208 | + | |
197 | 209 | | |
198 | 210 | | |
199 | 211 | | |
| |||
207 | 219 | | |
208 | 220 | | |
209 | 221 | | |
210 | | - | |
| 222 | + | |
211 | 223 | | |
212 | 224 | | |
213 | 225 | | |
| |||
0 commit comments