IMAP拷贝和删除邮件操作示例

Python示例:

# -*- coding: utf-8 -*-
import imaplib

# 设置邮箱信息
imap_server = 'imap.qiye.aliyun.com'
username = 'test@example.net'
password = 'xxxxx'
source_folder = 'INBOX'
destination_folder = '123'

# 连接到IMAP服务器
mail = imaplib.IMAP4_SSL(imap_server)
mail.login(username, password)
# 选择源文件夹
mail.select(source_folder)

# 搜索邮箱中所有邮件的NUM,NUM会变化不推荐使用
# result, num_data = mail.search(None, 'ALL')
# print('结果1:',result, num_data)
# 搜索邮箱中所有邮件的UID,推荐
result, uid_data = mail.uid('search', None, 'ALL')
print('结果2:', result, uid_data)

# 如果找到邮件
if result == 'OK':
    for uid in uid_data[0].split():
        # 将邮件移动到目标文件夹
        # 注意:不支持"MOVE"命令,可以使用"UID COPY"会将邮件从原文件夹移动到目标文件夹,移动后邮件只在目标文件夹中存在
        result, copy_data = mail.uid('COPY', uid, destination_folder)
        if result == 'OK':
            print('uid=', uid)
            # 注意:Deleted命令会执行彻底删除,如果需要彻底删除邮件,按如下执行
            #mail.uid('STORE', uid, '+FLAGS', '(\\Deleted)')

# 注销
mail.close()
mail.logout()