#!/usr/bin/env python3
"""Send email via Gmail SMTP with optional attachments.
Usage: gmail-send.py <app-password> <to> <subject> <body> [attachment1] [attachment2] ...
"""
import smtplib
import sys
import os
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

EMAIL = 'mikeziarko@gmail.com'

if len(sys.argv) < 5:
    print("Usage: gmail-send.py <app-password> <to> <subject> <body> [attachments...]")
    sys.exit(1)

PASSWORD = sys.argv[1]
TO = sys.argv[2]
SUBJECT = sys.argv[3]
BODY = sys.argv[4]
ATTACHMENTS = sys.argv[5:] if len(sys.argv) > 5 else []

msg = MIMEMultipart()
msg['From'] = EMAIL
msg['To'] = TO
msg['Subject'] = SUBJECT
msg.attach(MIMEText(BODY, 'plain'))

for filepath in ATTACHMENTS:
    if os.path.exists(filepath):
        with open(filepath, 'rb') as f:
            part = MIMEBase('application', 'octet-stream')
            part.set_payload(f.read())
            encoders.encode_base64(part)
            part.add_header('Content-Disposition', f'attachment; filename="{os.path.basename(filepath)}"')
            msg.attach(part)
        print(f"Attached: {os.path.basename(filepath)}")
    else:
        print(f"WARNING: File not found: {filepath}")

try:
    server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
    server.login(EMAIL, PASSWORD)
    server.sendmail(EMAIL, TO, msg.as_string())
    server.quit()
    print(f"Email sent to {TO}")
except Exception as e:
    print(f"ERROR: {e}")
    sys.exit(1)
