Jan*_*rát 25
有多种方法可以做到这一点.最好的一个是从2013年初开始UID MOVE在RFC 6851中定义的命令:
C: a UID MOVE 42:69 foo
S: * OK [COPYUID 432432 42:69 1202:1229]
S: * 22 EXPUNGE
S: (more expunges)
S: a OK Done
Run Code Online (Sandbox Code Playgroud)
此功能表示此扩展的存在MOVE.
如果它不可用,但UIDPLUS(RFC 4315)是,第二个最佳选择是使用和的组合UID STORE,UID COPY和UID EXPUNGE:
C: a01 UID COPY 42:69 foo
S: a01 OK [COPYUID 432432 42:69 1202:1229] Copied
C: a02 UID STORE 42:69 +FLAGS.SILENT (\Deleted)
S: a02 OK Stored
C: a03 UID EXPUNGE 42:69
S: * 10 EXPUNGE
S: * 10 EXPUNGE
S: * 10 EXPUNGE
S: a03 Expunged
Run Code Online (Sandbox Code Playgroud)
如果UIDPLUS缺少,则无法做任何合理的事情 - 该EXPUNGE命令会永久删除所有标记为删除的邮件,包括您未触及的邮件.最好的是在这种情况下使用UID COPY和UID STORE.
Sec*_*Sec 19
我不确定你在imap-speak中是多么精通,但基本上在登录后,"选择"源邮箱,"复制"邮件,并"删除"邮件(或"删除"旧邮箱,如果它现在是空的:-).
a login a s
b select source
c copy 1 othermbox
d store 1 +flags (\Deleted)
e expunge
Run Code Online (Sandbox Code Playgroud)
将是要发送的消息的示例.(注意:imap消息在每个命令之前需要一个uniqe前缀,因此前面的"ab c")
有关详细信息,请参阅RFC 2060.
Ava*_*esh 10
如果您有要移动的电子邮件的uid.
import imaplib
obj = imaplib.IMAP4_SSL('imap.gmail.com', 993)
obj.login('username', 'password')
obj.select(src_folder_name)
apply_lbl_msg = obj.uid('COPY', msg_uid, desti_folder_name)
if apply_lbl_msg[0] == 'OK':
mov, data = obj.uid('STORE', msg_uid , '+FLAGS', '(\Deleted)')
obj.expunge()
Run Code Online (Sandbox Code Playgroud)
凡msg_uid是邮件的UID.
| 归档时间: |
|
| 查看次数: |
34314 次 |
| 最近记录: |