mirror of
https://github.com/khoaliber/LetterFeed.git
synced 2026-03-02 05:29:13 +00:00
fix: imap fetch marks mails as read
This commit is contained in:
@@ -92,7 +92,7 @@ def _process_single_email(
|
||||
settings: Settings,
|
||||
) -> None:
|
||||
"""Process a single email message."""
|
||||
status, data = mail.fetch(num, "(RFC822)")
|
||||
status, data = mail.fetch(num, "(BODY.PEEK[])")
|
||||
if status != "OK":
|
||||
logger.warning(f"Failed to fetch email with id={num}")
|
||||
return
|
||||
@@ -129,8 +129,15 @@ def _process_single_email(
|
||||
if extracted_body:
|
||||
final_body = extracted_body
|
||||
|
||||
entry = EntryCreate(subject=subject, body=final_body, message_id=message_id)
|
||||
create_entry(db, entry, newsletter.id)
|
||||
entry_schema = EntryCreate(subject=subject, body=final_body, message_id=message_id)
|
||||
new_entry = create_entry(db, entry_schema, newsletter.id)
|
||||
|
||||
if not new_entry:
|
||||
logger.error(
|
||||
f"Failed to create entry for newsletter '{newsletter.name}' from sender {sender}, email will not be marked as read or moved."
|
||||
)
|
||||
return
|
||||
|
||||
logger.info(
|
||||
f"Created new entry for newsletter '{newsletter.name}' from sender {sender}"
|
||||
)
|
||||
|
||||
@@ -79,7 +79,7 @@ def test_process_emails(mock_imap, db_session: Session):
|
||||
mock_mail.login.assert_called_once_with("test@test.com", "password")
|
||||
mock_mail.select.assert_called_once_with("INBOX")
|
||||
mock_mail.search.assert_called_once_with(None, "(UNSEEN)")
|
||||
mock_mail.fetch.assert_called_once_with(b"1", "(RFC822)")
|
||||
mock_mail.fetch.assert_called_once_with(b"1", "(BODY.PEEK[])")
|
||||
mock_mail.store.assert_any_call(b"1", "+FLAGS", "\\Seen")
|
||||
mock_mail.copy.assert_called_once_with(b"1", "Processed")
|
||||
mock_mail.store.assert_any_call(b"1", "+FLAGS", "\\Deleted")
|
||||
|
||||
Reference in New Issue
Block a user