簡體   English   中英

Imap_tools 多個 NOT 條件

[英]Imap_tools Multiple NOT Conditions

我正在使用 imap_tools 訪問和處理我們的業務電子郵件。 我想過濾掉多個不同from_消息。

這是用於過濾出一個from_地址的工作代碼。 這將返回日期范圍內的所有電子郵件,但來自notifications@stripe.com的電子郵件除外

from imap_tools import MailBox, A, AND, OR, NOT
import datetime as dt
from bs4 import BeautifulSoup

username = "info@mysite.co.uk"
password = "mypasword"
imap_server = "mysite.co.uk"

# Get date, subject and body len of all emails from INBOX folder
with MailBox(imap_server).login(username, password) as mailbox:
    for msg in mailbox.fetch(
        AND(NOT(from_="notifications@stripe.com"), date=dt.date(2022, 9, 9))
    ):
        # print(msg.date, msg.subject, msg.html)

        if msg.html:
            soup = BeautifulSoup(msg.html, "html.parser")
            print(msg.from_)
            print(msg.subject)
            print(msg.date)
            print(soup.prettify)
            print(180 * "=")

這是我嘗試過的:

# Get date, subject and body len of all emails from INBOX folder
with MailBox(imap_server).login(username, password) as mailbox:
    for msg in mailbox.fetch(
        AND(
            NOT(from_=["notifications@stripe.com", "noreply@wise.com"]),
            date=dt.date(2022, 9, 9),
        )
    ):

根據文檔,應該傳入一個 str 列表。 from_: str | List[str] | None = None

但是,當我嘗試傳入我不想獲取的 email 地址列表時,它只會返回日期范圍內的所有電子郵件。

有任何想法嗎? 提前致謝!

似乎這是您服務器的限制。

我已經檢查過 YANDEX - 一樣。

在另一台服務器上它可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM