【问题标题】:escaping % in Python IMAP lib在 Python IMAP lib 中转义 %
【发布时间】:2012-02-05 16:08:31
【问题描述】:

对于如何绕过 IMAP UID SEARCH 获取包含 %(百分号)符号的消息 ID 的帮助,我将不胜感激:

import imaplib

messageId = '<CA824955.19602%username@hostname.com>'
M.uid('search', None, 'HEADER', 'Message-ID', "'" + messageId + "'")

得到:

51:55.73 > EKEE4 UID SEARCH HEADER Message-ID '<CA824955.19602%username@hostname.com>'
51:55.83 < EKEE4 BAD Could not parse command
51:55.83 BAD response: Could not parse command

我试过了

CA824955.19602%username@hostname.com
'CA824955.19602%username@hostname.com'
'CA824955.19602\%username@hostname.com'
'CA824955.19602%%username@hostname.com'

带或不带引号都返回相同的“无法解析命令”。

服务器是 imap.gmail.com

谢谢,

PS: 非常感谢@glglgl,将它包装成'"' + messageId + '"' 确实有帮助。我从 mysql 字符串字段中获取 messageId,由于某种原因,没有这个包装它就无法工作...... 问题已解决,非常感谢闪电般的解答!!!

【问题讨论】:

标签: python imap imaplib


【解决方案1】:

我没有看到你的问题。

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

非常适合我。

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

【讨论】:

  • 非常感谢,好像从变量传递值时我必须将它包装成 '"' + messageId + '"'.. 仍然不完全明白为什么它不起作用,messageId从mysql字符串字段中读取..
  • @kuz8 很高兴我能帮上忙。单击我的答案左侧的复选标记会很好...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 2011-05-26
  • 2019-03-25
  • 2010-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多