我可以获得具有特定标头值的电子邮件的uid,例如:
res, tmp = self.mail.uid('search', None, '(HEADER Message-ID "<123.456.789@localhost>")')
然后,tmp变为
[b'2993']
但是我从文件中获取了该Message-ID值,将该值存储到变量(msg_ID)中,并将msg_ID变量作为输入。
[当我尝试上述一种时:
tmp = "<123.456.789@localhost>"
res, tmp = self.mail.uid('search', None, '(HEADER Message-ID tmp)')
tmp返回一个空列表
[b'']
,表示它未能搜索目标电子邮件。
如何给变量提供适当的输入?
在您的示例中,您正在发送实际的字符串tmp
-不会神奇地在字符串内部扩展它。
您还缺少字符串周围的其他格式,应该添加其他格式以使它们相同:
'(HEADER Message-ID "' + tmp + '")'
这样,您的字符串实际上将是相同的,并且应该可以按预期工作。在编写代码时,您只是在索要消息ID设置为tmp
的电子邮件。
我也可以通过使用]来解决这个问题>
res, tmp = self.mail.uid('search', None, '(HEADER Message-ID %s)' %tmp)