Files
taiji-AI-PAD/test_smtp.py
T

141 lines
3.8 KiB
Python
Raw 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
"""
SMTP邮件发送测试脚本
用于调试阿里云企业邮箱/邮件推送服务配置
"""
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# ==================== 配置区域 ====================
# 请根据实际情况修改以下配置
# 189邮箱(天翼邮箱)配置
SMTP_SERVER = "smtp.189.cn" # 189邮箱SMTP服务器
SMTP_PORT = 465 # SSL端口
# 发件人配置
SMTP_EMAIL = "taijiagent@189.cn"
SMTP_PASSWORD = "eR)8hD@1Q)3sU%2q" # 授权码
# 收件人
TO_EMAIL = "zsbgnw@gmail.com"
# ==================== 测试代码 ====================
def test_smtp_ssl():
"""测试SSL连接(端口465)"""
print(f"\n{'='*50}")
print(f"测试 SSL 连接")
print(f"服务器: {SMTP_SERVER}:{SMTP_PORT}")
print(f"发件人: {SMTP_EMAIL}")
print(f"收件人: {TO_EMAIL}")
print(f"{'='*50}\n")
try:
print("1. 创建SSL连接...")
server = smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT, timeout=30)
print(" ✓ SSL连接成功")
print("2. 登录认证...")
server.login(SMTP_EMAIL, SMTP_PASSWORD)
print(" ✓ 认证成功")
print("3. 构建邮件...")
msg = MIMEMultipart()
msg['From'] = SMTP_EMAIL
msg['To'] = TO_EMAIL
msg['Subject'] = "Taiji AI-PAD 测试邮件"
body = """
这是一封测试邮件。
如果您收到此邮件,说明SMTP配置正确。
---
Taiji AI-PAD 团队
"""
msg.attach(MIMEText(body, 'plain', 'utf-8'))
print(" ✓ 邮件构建完成")
print("4. 发送邮件...")
server.send_message(msg)
print(" ✓ 邮件发送成功!")
server.quit()
return True
except smtplib.SMTPAuthenticationError as e:
print(f" ✗ 认证失败: {e}")
print("\n可能的原因:")
print(" - 邮箱地址或密码错误")
print(" - 需要使用授权码而非登录密码")
print(" - 邮箱未开启SMTP服务")
return False
except smtplib.SMTPConnectError as e:
print(f" ✗ 连接失败: {e}")
return False
except Exception as e:
print(f" ✗ 错误: {type(e).__name__}: {e}")
return False
def test_smtp_starttls():
"""测试STARTTLS连接(端口587/25)"""
port = 587
print(f"\n{'='*50}")
print(f"测试 STARTTLS 连接")
print(f"服务器: {SMTP_SERVER}:{port}")
print(f"发件人: {SMTP_EMAIL}")
print(f"{'='*50}\n")
try:
print("1. 创建连接...")
server = smtplib.SMTP(SMTP_SERVER, port, timeout=5)
print(" ✓ 连接成功")
print("2. 启用TLS...")
server.starttls()
print(" ✓ TLS启用成功")
print("3. 登录认证...")
server.login(SMTP_EMAIL, SMTP_PASSWORD)
print(" ✓ 认证成功")
print("4. 构建并发送邮件...")
msg = MIMEMultipart()
msg['From'] = SMTP_EMAIL
msg['To'] = TO_EMAIL
msg['Subject'] = "Taiji AI-PAD 测试邮件 (STARTTLS)"
msg.attach(MIMEText("STARTTLS测试邮件", 'plain', 'utf-8'))
server.send_message(msg)
print(" ✓ 邮件发送成功!")
server.quit()
return True
except Exception as e:
print(f" ✗ 错误: {type(e).__name__}: {e}")
return False
if __name__ == "__main__":
print("\n" + "="*60)
print(" SMTP 邮件发送测试")
print("="*60)
# 测试SSL连接
ssl_result = test_smtp_ssl()
if not ssl_result:
print("\n尝试 STARTTLS 方式...")
test_smtp_starttls()
print("\n" + "="*60)
print("测试完成")
print("="*60 + "\n")