2012-02-05 133 views
1

我会很感激与我怎么能规避邮件ID IMAP UID搜索包含%(百分比)符号的帮助:逃逸%

import imaplib 

messageId = '<CA824955.19602%[email protected]>' 
M.uid('search', None, 'HEADER', 'Message-ID', "'" + messageId + "'") 

越来越:

51:55.73 > EKEE4 UID SEARCH HEADER Message-ID '<CA824955.19602%[email protected]>' 
51:55.83 < EKEE4 BAD Could not parse command 
51:55.83 BAD response: Could not parse command 

我已经尝试过

CA824955.19602%[email protected] 
'CA824955.19602%[email protected]' 
'CA824955.19602\%[email protected]' 
'CA824955.19602%%[email protected]' 

有或没​​有引号都返回相同的“无法解析命令”。

服务器是imap.gmail.com

谢谢

PS: 感谢很多@glglgl,包成'"' + messageId + '"'实际上帮助。我从mysql字符串字段得到messageId,由于某种原因,没有这个包装,它不工作... 问题解决了,非常感谢你的闪电般的速度答案!

回答

0

我看不到您的问题。

import imaplib m=imaplib.IMAP4_SSL([...]) m.login([...]) 
m.select('Archiv/misc') m.uid('search', None, 'HEADER', 'Message-ID', 
    '<1i6c6x0.inv6rk1u5kx5cN%[email protected]>') 

适合我。

您是否已尝试省略"'" ++ "'"

+0

非常感谢,好像当从一个变量传递值时,我必须将它包装到'''+ messageId +'''中。 仍然不完全理解它为什么不起作用,messageId是从mysql读取的字符串字段.. – kuz8 2012-02-05 08:01:18

+0

@ kuz8你确定你必须?在我的实验中,我没有... – glglgl 2012-02-05 10:16:31

+0

@ kuz8很高兴我能帮上忙。点击我答案左边的复选标记会很好。 – glglgl 2012-02-05 10:17:28