Python – 网易邮箱邮件阅读和删除辅助小脚本

摘要:【原创】转载请注明作者Johnthegreat和本文链接

简介:在Windows下的网易邮箱大师客户端中,阅读邮件时,可以使用快捷键Delete删除邮件,然后自动跳到下一封,如果再按一次Delete键,再跳到下一封。为了迅速的阅读邮件,同时删除没有必要的邮件,特地写了如下脚本,自用同时放出来共享。

image

问题:

1. 如上图,我积累太多未读邮件,原因是每天邮件太多,根本看不完,数量马上到上限了;

2. 我想看到每封邮件;

3. 邮件有时内容太过鸡肋,属于知晓型即可,看完即可删除;

4. 大多数看完就要删除,一个个删除太麻烦;

一句话,需要自动删除我看完之后觉得没有用处的邮件。

一个解决方案:

见如下代码

import win32api
import time


def fast_email_reading_and_delete(vk_code: int) -> None:
    """
    Virtual Key Code reference: //docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
    """
    print("Running, please switch to the software you are using within 3 seconds!")
    time.sleep(3) # use this 3 seconds to switch to the software you use, for example Netease email client
    count = 0
    while True:
        win32api.keybd_event(int(vk_code), 0, 0, 0)
        
        count += 1
        if count % 30 == 0: # refresh every 30 seconds to get more email from Netease email server
            win32api.keybd_event(int(0x71), 0, 0, 0)   # 0x71 is F2 refresh, int is 113
        time.sleep(1) # mail reading time
        
        # press space key or right arrow would halt the delete process. 0x20 spacekey 0x27 right arrow key
        if win32api.GetAsyncKeyState(int(0x20)) or win32api.GetAsyncKeyState(int(0x27)): 
            while True:
                time.sleep(0.5)
                if win32api.GetAsyncKeyState(int(0x20)) or win32api.GetAsyncKeyState(int(0x27)):
                    break

if __name__ == '__main__':
    fast_email_reading_and_delete(0x2E) # 0x2E is DEL key, equivalent int is 46

将来我如果有机会自行开发邮件客户端,就将自动展现邮件内容(一封接着另一封)、自动删除(或者归档)邮件,作为原始功能提供给用户。

理论上讲,上述脚本适用于任何有DEL快捷键功能的软件,注意不要把自己的东西搞砸了,自动删除时间是1秒。

好了,以上代码调用了Windows的api,所以只能在Windows下运行,Linux下面应该有类似的工具,欢迎留言交流!

Tags: