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