#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 独立的邮件发送脚本(绕过 eventlet DNS 问题) 使用方式: python email_sender.py 返回值: 成功返回 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 ") 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)