Files
vf_react/email_sender.py
2025-12-12 00:45:31 +08:00

65 lines
1.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
# -*- coding: utf-8 -*-
"""
独立的邮件发送脚本(绕过 eventlet DNS 问题)
使用方式:
python email_sender.py <to_email> <subject> <body> <smtp_server> <smtp_port> <username> <password> <use_ssl>
返回值:
成功返回 0失败返回 1
"""
import sys
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def send_email(to_email, subject, body, smtp_server, smtp_port, username, password, use_ssl):
"""发送邮件"""
try:
# 创建邮件
msg = MIMEMultipart()
msg['From'] = username
msg['To'] = to_email
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain', 'utf-8'))
# 连接 SMTP 服务器
if use_ssl:
server = smtplib.SMTP_SSL(smtp_server, smtp_port, timeout=30)
else:
server = smtplib.SMTP(smtp_server, smtp_port, timeout=30)
server.starttls()
# 登录并发送
server.login(username, password)
server.sendmail(username, [to_email], msg.as_string())
server.quit()
print(f"Email sent successfully to {to_email}")
return True
except Exception as e:
print(f"Email Error: {type(e).__name__}: {e}")
return False
if __name__ == "__main__":
if len(sys.argv) != 9:
print("Usage: python email_sender.py <to_email> <subject> <body> <smtp_server> <smtp_port> <username> <password> <use_ssl>")
sys.exit(1)
to_email = sys.argv[1]
subject = sys.argv[2]
body = sys.argv[3]
smtp_server = sys.argv[4]
smtp_port = int(sys.argv[5])
username = sys.argv[6]
password = sys.argv[7]
use_ssl = sys.argv[8].lower() == 'true'
success = send_email(to_email, subject, body, smtp_server, smtp_port, username, password, use_ssl)
sys.exit(0 if success else 1)