Files
server-configs/test-smtp.py
2026-02-13 22:24:27 +08:00

161 lines
4.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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()