Files
appointment_tool/remove_emails_from_destination.py

80 lines
2.6 KiB
Python

"""
脚本:从 DESTINATION_EMAIL_LIST 集合中批量删除指定邮箱地址
用法:
直接修改下方 EMAIL_LIST_TO_REMOVE 列表,然后运行脚本。
或在代码中调用 remove_emails_from_destination(email_list) 函数。
"""
import logging
from typing import List
from src.db.mongo_manager import MONGO_STORE_MANAGER
from src.pojo.mail.mail_pojo import MailAddress
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
logger = logging.getLogger(__name__)
def remove_emails_from_destination(email_list: List[str]) -> None:
"""
从 DESTINATION_EMAIL_LIST 集合中删除给定的邮箱地址列表。
Args:
email_list (List[str]): 需要删除的邮箱地址字符串列表
"""
if not email_list:
logger.warning("传入的邮箱列表为空,无需删除。")
return
success_count = 0
fail_count = 0
for email in email_list:
email = email.strip()
if not email:
continue
try:
# remove_email_from_destination_email_list 需要一个 MailAddress 对象
# password 字段对删除操作无影响,传空字符串即可
mail_address = MailAddress(mail=email, password="")
MONGO_STORE_MANAGER.remove_email_from_destination_email_list(mail_address)
logger.info(f"已删除邮箱: {email}")
success_count += 1
except Exception as e:
logger.error(f"删除邮箱 {email} 时出错: {e}")
fail_count += 1
logger.info(f"删除完成 — 成功: {success_count},失败: {fail_count},共处理: {success_count + fail_count}")
# ──────────────────────────────────────────────
# 直接运行时,修改下方列表即可批量删除
# ──────────────────────────────────────────────
EMAIL_LIST_TO_REMOVE: List[str] = [
"susannekaar@gmx.net",
"dianataya@gmx.net",
"sophiezhoz@gmx.net",
"claudiavimu@gmx.net",
"leoniekeyk@gmx.net",
"katjamoem@gmx.net",
"annechoa@gmx.net",
"manuelacoep@gmx.net",
"kathrinbeet@gmx.net",
"katjapoyu@gmx.net",
"klausciluwe@gmx.net",
"petraneak@gmx.net",
"leahpona@gmx.net",
"jenniferhoko@gmx.net",
"phillippkemikv@gmx.net",
"sandrasika@gmx.net",
"leoniekala@gmx.net",
"sabinekiav@gmx.net",
"marinabaes@gmx.net",
"ulrikegevo@gmx.net",
"claudiadare@gmx.net"
]
if __name__ == "__main__":
remove_emails_from_destination(EMAIL_LIST_TO_REMOVE)