#!/usr/bin/env python3
"""发送 Kimi Code 配置文件到指定邮箱"""

import smtplib
import ssl
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email import encoders
import os

# 邮件配置（从 account.md 获取）
SMTP_SERVER = "smtp.163.com"
SMTP_PORT = 465
SENDER_EMAIL = "solidbullet@163.com"
# 请在此填入邮箱授权码（account.md 中的授权码）
AUTH_CODE = "NRn7QNskMCdiPHsd"
RECIPIENT_EMAIL = "691622093@qq.com"

# 附件路径
ATTACHMENT_PATH = os.path.expanduser("~/kimi-code-config.tar.gz")

def send_email():
    if not os.path.exists(ATTACHMENT_PATH):
        print(f"错误：找不到附件 {ATTACHMENT_PATH}")
        return False

    msg = MIMEMultipart()
    msg["From"] = SENDER_EMAIL
    msg["To"] = RECIPIENT_EMAIL
    msg["Subject"] = "Kimi Code 配置文件备份"

    body = """你好，

这是从 Mac 本机打包的 Kimi Code 核心配置文件，包含：
- config.toml（主配置）
- kimi.json（用户设置）
- credentials/（登录凭证）
- device_id（设备标识）

在 Xubuntu 22 上使用方法：
1. 解压到 ~/.kimi/ 目录（注意先备份原配置）
2. 重新登录或刷新凭证

附件已加密压缩，请妥善保管。
"""
    msg.attach(MIMEText(body, "plain", "utf-8"))

    # 添加附件
    with open(ATTACHMENT_PATH, "rb") as f:
        part = MIMEBase("application", "octet-stream")
        part.set_payload(f.read())
    encoders.encode_base64(part)
    part.add_header(
        "Content-Disposition",
        f"attachment; filename= kimi-code-config.tar.gz",
    )
    msg.attach(part)

    # 发送邮件
    context = ssl.create_default_context()
    try:
        with smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT, context=context) as server:
            server.login(SENDER_EMAIL, AUTH_CODE)
            server.sendmail(SENDER_EMAIL, RECIPIENT_EMAIL, msg.as_string())
        print(f"✅ 邮件已发送至 {RECIPIENT_EMAIL}")
        return True
    except Exception as e:
        print(f"❌ 发送失败：{e}")
        return False

if __name__ == "__main__":
    send_email()
