#!/bin/sh

mail_uid=${1:-"1"}
host=${2:-astra17.k2}
user=${3:-petrov}
password=${4:-12345678}
folder="INBOX"

echo "seen_del_mail: ${mail_uid} [${host} ${user} ${password}]"

export IMAP_UID="${mail_uid}"
export IMAP_HOST="${host}"
export IMAP_USER="${user}"
export IMAP_PASS="${password}"
export IMAP_FOLDER="${folder}"

command='
import os
import sys
import imaplib

#  отметка о прочтении
def mark_as_seen(mail_obj, uid):
    status, _ = mail_obj.uid("STORE", uid, "+FLAGS", "\\Seen")
    if status == "OK":
        print(f"seen_del_mail: {uid} отмечено как прочитанное.")
        return True
    else:
        print(f"seen_del_mail: Ошибка: Не удалось поставить статус Seen для UID {uid}", file=sys.stderr)
        return False

#  удаление письма
def delete_and_expunge(mail_obj, uid, folder_name):
    status, _ = mail_obj.uid("STORE", uid, "+FLAGS", "\\Deleted")
    if status == "OK":
        print(f"seen_del_mail: Письмо {uid} помечено на удаление.")

        mail_obj.expunge()
        print(f"seen_del_mail: Письмо {uid} окончательно удалено.")
        return True
    else:
        print(f"seen_del_mail: Ошибка: Не удалось пометить на удаление письмо {uid}", file=sys.stderr)
        return False


mail_uid = os.environ.get("IMAP_UID")
host = os.environ.get("IMAP_HOST")
user = os.environ.get("IMAP_USER")
password = os.environ.get("IMAP_PASS")
folder = os.environ.get("IMAP_FOLDER")

try:
    mail = imaplib.IMAP4(host) 
    mail.login(user, password)
    mail.select(folder)

   
    mark_as_seen(mail, mail_uid)
  
    delete_and_expunge(mail, mail_uid, folder)

    mail.logout()
    sys.exit(0)

except Exception as e:
    print("seen_del_mail: Ошибка при работе с IMAP:", e, file=sys.stderr)
    sys.exit(1)
'

response=$(python3 -c "${command}")
r=$?

if [ $r -ne 0 ]; then
    echo "seen_del_mail: Ошибка обработки uid=${mail_uid} ${response}"
    exit $r
fi

echo "manage_mail: OK"
exit 0
