Python 如何将变量与imaplib一起使用

Python 如何将变量与imaplib一起使用,python,gmail,imaplib,Python,Gmail,Imaplib,我正在使用imaplib获取邮箱在特定日期收到的电子邮件数量,它非常有效,但我想进一步使用它,并使用变量选择日期范围(从开始到之前),并在循环中打印从选择的开始日期到今天每天收到的电子邮件数量 但是,用今天的日期变量替换之前的日期时,我已经收到一条错误消息: from datetime import date,timedelta today = date.today() tdate = today.strftime("%d-%b-%Y") obj = imaplib.I

我正在使用imaplib获取邮箱在特定日期收到的电子邮件数量,它非常有效,但我想进一步使用它,并使用变量选择日期范围(从开始到之前),并在循环中打印从选择的开始日期到今天每天收到的电子邮件数量

但是,用今天的日期变量替换之前的日期时,我已经收到一条错误消息:

from datetime import date,timedelta

today = date.today()
tdate = today.strftime("%d-%b-%Y")


obj = imaplib.IMAP4_SSL('imap.gmail.com', 993)  
obj.login('xxx@gmail.com', 'password')  
obj.select('Inbox')     
('OK', ['50'])  
gmail_count = obj.search(None,'(SINCE "28-Aug-2020" BEFORE "tdate")') 
values = gmail_count[1][0]
replaced = values.decode("utf-8").replace(" ", ",")
replaced.count(",") + 1

error: SEARCH command error: BAD [b'Could not parse command']

有什么方法可以避免这种情况吗?

如果我理解正确,您正试图使用
变量
值来选择的日期范围,即开始日期和之前日期。因为
obj.search()
的第二个参数在传入之前接受字符串值

比如说

您可以像这样设置格式化变量,并将变量值传递到其中

rangeVals = (SINCE "{}" BEFORE "{}").format("<Start-Date>,<End-Date>")

如果解决方案不成功,请考虑将错误跟踪更新为问题。

< P>如果我正确理解,则尝试使用<代码>变量< /代码>值来选择<强> >和< < /强> >之前的日期范围。因为
obj.search()
的第二个参数在传入之前接受字符串值

比如说

您可以像这样设置格式化变量,并将变量值传递到其中

rangeVals = (SINCE "{}" BEFORE "{}").format("<Start-Date>,<End-Date>")

如果解决方案不成功,考虑将错误跟踪更新为问题。

问题是否解决?问题是否解决?