(
credentials: &EmailAccountCredentials,
request: &EmailGetMessageRequest,
timeout: Duration,
)
| 273 | } |
| 274 | |
| 275 | fn get_message_content_imap_blocking( |
| 276 | credentials: &EmailAccountCredentials, |
| 277 | request: &EmailGetMessageRequest, |
| 278 | timeout: Duration, |
| 279 | ) -> Result<EmailMessageContent, EmailServiceError> { |
| 280 | let mut session = connect_and_login(credentials, timeout)?; |
| 281 | session.select_mailbox(&request.folder)?; |
| 282 | |
| 283 | let uid = request |
| 284 | .message_id |
| 285 | .trim() |
| 286 | .parse::<u64>() |
| 287 | .map_err(|_| EmailServiceError::Api("invalid message id".to_string()))?; |
| 288 | let content = session |
| 289 | .fetch_message_content(uid)? |
| 290 | .ok_or_else(|| EmailServiceError::NotFound(request.message_id.clone()))?; |
| 291 | |
| 292 | session.logout(); |
| 293 | Ok(content) |
| 294 | } |
| 295 | |
| 296 | struct ImapCommandOutput { |
| 297 | lines: Vec<String>, |
no test coverage detected