件名が「New Order」で始まるすべてのメールを取得しようとしていますが、わかりません。現在、次のような設定で完全一致を検索できます...
result, data = M.uid('search', None, '(HEADER Subject "Subject Here")')
ただし、完全に一致しないメッセージは取得されません。部分一致を行うにはどうすればよいですか?
問題がある場合は、gmail の imap サーバーと通信しています。
ありがとう
IMAP RFC によると、SEARCH
部分文字列の一致としてすべての一致を行う必要があります。
文字列を使用するすべての検索キーで、文字列がフィールドの部分文字列である場合、メッセージはキーと一致します。マッチングは大文字と小文字を区別しません。
したがって、検索
M.uid('search', None, 'HEADER Subject "New Order"')
件名のどこかに出現するすべてのメッセージに一致する必要がありますNew Order
。そうでない場合は、サーバーが IMAP を適切に実装していないことを Google に通知する必要があります。SUBJECT
それまでの間、次のようにキーを使用してみてください。
M.uid('search', None, 'SUBJECT "New Order"')
また、Google の IMAP 拡張ドキュメントX-GM-RAW
によると、次のようにキーと gmail 検索文字列を使用できる場合があります。
M.uid('search', None, r'X-GM-RAW "subject:\"New Order\""')
これは私のために働いた:
mail.uid('search', None, r'(X-GM-RAW "subject:\"New Order\"")')
これは私のために働いた:
M.uid('search',None, '(SUBJECT "New Order")')
検索のフォーマットは(EmailAttribute "your searchstring")
それがうまくいくことを願っています。