2016-10-19 11 views
0

Я пытаюсь отметить электронную почту как невидимую на сервере Gmail.Отметьте как невидимый на Gmail (imaplib)

Я использую эту команду:

res, data = mailbox.uid('STORE', uid, '-FLAGS', '(\Seen)') 

Все идет нормально, но когда я проверить его с помощью веб-браузера, по-прежнему помечается как видно. Когда я проверяю флаги вот что я получил:

b'46 (FLAGS (-FLAGS \\Seen))' 

Я видел несколько вопросов по этому вопросу, но ни один из предлагаемых решений работы.

Просто сказать, что я это письмо, добавляя с помощью:

mailbox.append(db_email.folder, "-FLAGS \Seen", time.mktime(db_email.date.timetuple()), mail.as_bytes()) 

Но параметр флага -FLAGS \Seen не имеет никакого эффекта, так как это то же самое, когда я не передать аргумент флага.

Кроме того, я дважды проверил uid для данной почтовой папки и соответствует соответствующему электронному письму.

+0

Разве это не флаг 'Unseen'? – Uriel

+0

@UrielEli Я предполагаю, что есть только флаг Seen, и вы можете установить + FLAGS или -FLAGS в зависимости от видимого/невидимого статуса. – sstevan

+0

проверить свои документы, не гадать. – Uriel

ответ

2

Похоже, вы неправильно поняли флаги в APPEND.

Выполнение APPEND folder (-FLAGS \Seen) ... вы фактически создали сообщение с двумя флагами: стандартный флаг \Seen и нестандартный флаг -FLAGS.

Чтобы создать сообщение без значка \ Seen, просто используйте () как ваш список флагов для APPEND.

-FLAGS - это подкоманда к МАГАЗИНУ, говорящая об удалении этих флагов из текущего списка. И наоборот, +FLAGS добавляет эти флаги в текущий список. Простой FLAGS перезаписывает текущий список.

Кроме того, если вы удалили флаг \Seen по соединению IMAP, может потребоваться некоторое время, чтобы он появился в GMail WebUI. Возможно, вам придется обновить или переключить папки, чтобы получить изменения для рендеринга.

NB: Вы не защищаете обратную косую черту. \S не является законной эвакуационной последовательностью, поэтому будет проходить через, но вы должны либо использовать двойную обратную косую черту ('\\Seen'), либо необработанную строку (r'\Seen')

 Смежные вопросы

  • Нет связанных вопросов^_^