重要
风险提示:下述代码在Python 3.11.9进行的测试,用于生产环境之前请务必先做好测试。
Python示例代码
场景1:彻底删除指定文件夹的所有邮件。
# -*- coding: utf-8 -*-
import imaplib
# 设置邮箱信息
# 配置 IMAP 服务器
imap_server = 'imap.qiye.aliyun.com' # IMAP 服务器地址
username = 'test@example.com' # 用户名
password = '********' # 密码
port = 993 # 端口号
source_folder = 'folder2'
# 连接到IMAP服务器
mail = imaplib.IMAP4_SSL(imap_server, port)
mail.login(username, password)
# 选择源文件夹
mail.select(source_folder)
# 搜索邮箱中所有邮件的UID,推荐
result, uid_data = mail.uid('search', None, 'ALL')
print('搜索结果:', result, uid_data)
# 如果找到邮件
if result == 'OK':
for uid in uid_data[0].split():
result, data = mail.uid('STORE', uid, '+FLAGS', '(\\Deleted)')
if result == 'OK':
print(f'{uid} 删除完成')
# 注销
mail.close()
mail.logout()
运行结果
场景2:彻底删除指定uid的邮件
# -*- coding: utf-8 -*-
import imaplib
def before_after_move_email(source_folder, destination_folder):
# 选择文件夹
mail.select(source_folder)
# uid
result, data = mail.uid('search', None, 'UNSEEN')
print(f'{source_folder}搜索结果UID:{result},{data}')
# 选择文件夹
mail.select(destination_folder)
# uid
result, data = mail.uid('search', None, 'UNSEEN')
print(f'{destination_folder}搜索结果UID:{result},{data}')
# 设置邮箱信息
# 配置 IMAP 服务器
imap_server = 'imap.qiye.aliyun.com' # IMAP 服务器地址
username = 'test@example.com' # 用户名
password = '********' # 密码
port = 993 # 端口号
source_folder = 'folder1'
destination_folder = 'folder2'
# 连接到IMAP服务器
mail = imaplib.IMAP4_SSL(imap_server, port)
mail.login(username, password)
print('删除前:')
before_after_move_email(source_folder, destination_folder)
mail.select(source_folder)
# 删除指定的UID
result, delete_data = mail.uid('STORE', '14', '+FLAGS', '(\\Deleted)')
mail.expunge()
print('删除后:')
before_after_move_email(source_folder, destination_folder)
运行结果
文档内容是否对您有帮助?