1

%(パーセント)記号を含むメッセージIDのIMAPUID検索を回避する方法についてサポートをいただければ幸いです。

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を取得していますが、何らかの理由でこのラッピングなしでは機能しませんでした...質問は解決しました。電光石火のスピードで答えてくれてありがとう!!!

4

1 に答える 1

0

私はあなたの問題を見ていません。

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

私にとっては完璧に機能します。

とを省略しようとしました"'" ++ "'"

于 2012-02-05T07:54:09.353 に答える