#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ SMTP 邮件发送测试脚本 使用 163 邮箱 SMTP 服务发送测试邮件 """ import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header import sys # SMTP 配置 SMTP_SERVER = "smtp.163.com" SMTP_PORT = 465 # SSL 端口 EMAIL = "work_fyx02@163.com" AUTH_CODE = "QLrTpw7SDxrMuAzh" # 授权码 # 收件人 TO_EMAIL = "Yaxing_feng@dgmaorui.com" def send_test_email(): """发送测试邮件""" print("=" * 60) print("SMTP 邮件发送测试") print("=" * 60) print(f"发件人: {EMAIL}") print(f"收件人: {TO_EMAIL}") print(f"SMTP 服务器: {SMTP_SERVER}:{SMTP_PORT}") print("=" * 60) try: # 创建邮件 msg = MIMEMultipart() msg["From"] = Header(f"OpenClaw <{EMAIL}>", "utf-8") msg["To"] = Header(TO_EMAIL, "utf-8") msg["Subject"] = Header("测试邮件 - SMTP 配置验证", "utf-8") # 邮件正文 body = """📧 **测试邮件 - SMTP 配置验证** **发送时间:** 2026年2月2日 20:43 --- ## 📋 **配置信息** - **发件人邮箱:** work_fyx02@163.com - **收件人邮箱:** Yaxing_feng@dgmaorui.com - **SMTP 服务器:** smtp.163.com:465 - **认证方式:** 授权码认证 --- ## ✅ **测试目的** 验证 163 邮箱 SMTP 配置是否正常工作。 --- ## 📊 **当前任务状态** - ✅ Cubox API 已配置 - ✅ 滴答清单 API 已配置 - ✅ Notion API 已配置 - ✅ SMTP 邮箱信息已保存 - ✅ SMTP 测试邮件发送中... - ⏳ 每日新闻任务待集成邮件发送 --- ## ⏰ **定时任务** **每日新闻摘要发送时间:** 每天早上 7:30 **接收邮箱:** Yaxing_feng@dgmaorui.com --- **此邮件由 OpenClaw 自动发送** **SMTP 测试脚本:test-smtp.py** """ msg.attach(MIMEText(body, "plain", "utf-8")) # 连接 SMTP 服务器并发送邮件 print("\n正在连接 SMTP 服务器...") with smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT) as server: print(f"连接成功: {SMTP_SERVER}:{SMTP_PORT}") print("正在登录...") server.login(EMAIL, AUTH_CODE) print(f"登录成功: {EMAIL}") print("正在发送邮件...") server.send_message(msg) print("邮件发送成功!") print("\n" + "=" * 60) print("✅ 测试完成 - 邮件已发送") print("=" * 60) print(f"收件人: {TO_EMAIL}") print("请检查收件箱(包括垃圾邮件)") print("=" * 60) return True except smtplib.SMTPAuthenticationError as e: print("\n" + "=" * 60) print("❌ 认证失败") print("=" * 60) print(f"错误信息: {e}") print("\n可能原因:") print("1. 授权码错误") print("2. 163 邮箱未开启 SMTP 服务") print("3. 需要在 163 邮箱网页版生成新的授权码") print("=" * 60) return False except smtplib.SMTPException as e: print("\n" + "=" * 60) print("❌ 发送失败") print("=" * 60) print(f"错误信息: {e}") print("=" * 60) return False except Exception as e: print("\n" + "=" * 60) print("❌ 未知错误") print("=" * 60) print(f"错误信息: {e}") print("=" * 60) return False def main(): """主函数""" print("开始 SMTP 邮件发送测试...") print() success = send_test_email() if success: print("\n💡 提示:") print("1. 如果未收到邮件,请检查垃圾邮件文件夹") print("2. 如果认证失败,请重新生成 163 邮箱授权码") print("3. 如果发送成功,说明 SMTP 配置正常") sys.exit(0) else: print("\n🔧 解决方案:") print("1. 登录 163 邮箱网页版") print("2. 进入设置 -> POP3/SMTP/IMAP") print("3. 开启 SMTP 服务") print("4. 生成新的授权码") print("5. 更新 smtp-config.md 中的授权码") sys.exit(1) if __name__ == "__main__": main()