zhangyunhao116 / zmail

Zmail makes it easier to send and retrieve emails in python3
MIT License
433 stars 111 forks source link

能否批量删除邮件? #89

Open tailyao opened 4 years ago

tailyao commented 4 years ago

MailServer.delete(which) 似乎只支持一次传入一个邮件ID?

HenryZeng-Zero commented 4 years ago

MailServer.delete(which) 似乎只支持一次传入一个邮件ID?

使用一个list存储待删邮件ID,用for把数据遍历出来,逐一删除

tailyao commented 4 years ago

MailServer.delete(which) 似乎只支持一次传入一个邮件ID?

使用一个list存储待删邮件ID,用for把数据遍历出来,逐一删除

我现在就是用list这个方法,只是要记录list里面ID的偏移就要比较麻烦一点。因为每此删一封信,ID就会变动一次,删了ID是13的邮件,下一次循环之前,原本的ID是14的邮件现在ID就变成13了。如果list里面记录的ID不是连续的话,就比较麻烦,每次循环之前都要根据偏移量更新ID,保证ID始终指向正确的邮件。

HenryZeng-Zero commented 4 years ago

我现在就是用list这个方法,只是要记录list里面ID的偏移就要比较麻烦一点。因为每此删一封信,ID就会变动一次,删了ID是13的邮件,下一次循环之前,原本的ID是14的邮件现在ID就变成13了。如果list里面记录的ID不是连续的话,就比较麻烦,每次循环之前都要根据偏移量更新ID,保证ID始终指向正确的邮件。

可以使用计数变量count解决,先把待删ID排序,每删除一个,计数变量加1,则下次删除的ID就是ID-count,以此类推

HenryZeng-Zero commented 4 years ago

我现在就是用list这个方法,只是要记录list里面ID的偏移就要比较麻烦一点。因为每此删一封信,ID就会变动一次,删了ID是13的邮件,下一次循环之前,原本的ID是14的邮件现在ID就变成13了。如果list里面记录的ID不是连续的话,就比较麻烦,每次循环之前都要根据偏移量更新ID,保证ID始终指向正确的邮件。

也可以先把待删ID排序,从大数删起,这样小数ID就不会存在偏移了,邮件系统存储邮件ID的机制和栈很像......