Files
server-configs/test-smtp.py

161 lines
4.2 KiB
Python
Raw Normal View History

2026-02-13 22:24:27 +08:00
#!/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()