我可以获得一封具有特定标头值的电子邮件的uid,如下所示:
res, tmp = self.mail.uid('search', None, '(HEADER Message-ID "<123.456.789@localhost>")')
然后,tmp变成
[b'2993']
但我从文件中获取消息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)