handle deletion, folder correction
This commit is contained in:
parent
044bb3a960
commit
ff8d54817a
|
|
@ -42,7 +42,7 @@ logger = logging.getLogger("s3-email-downloader")
|
|||
AWS_REGION = os.environ.get('AWS_REGION', 'us-east-2')
|
||||
S3_BUCKET = os.environ.get('S3_BUCKET', '')
|
||||
EMAIL_PREFIX = os.environ.get('EMAIL_PREFIX', 'emails/')
|
||||
MAIL_DIR = os.environ.get('MAIL_DIR', './data/mail') # Pfad zum Docker-Volume
|
||||
MAIL_DIR = os.environ.get('MAIL_DIR', './mail') # Pfad zum Docker-Volume
|
||||
VALID_DOMAIN = os.environ.get('VALID_DOMAIN', 'bizmatch.net')
|
||||
VALID_USERNAMES = os.environ.get('VALID_USERNAMES', 'accounting,info,sales,support,test1,test2,test3')
|
||||
|
||||
|
|
@ -163,7 +163,7 @@ def store_email(email_content, to_address, message_id, s3_key, mail_dir):
|
|||
logger.error(f"Fehler beim Speichern der E-Mail {s3_key}: {str(e)}")
|
||||
return False
|
||||
|
||||
def delete_s3_emails(s3, emails_to_delete):
|
||||
def delete_s3_emails(s3, emails_to_delete, email_info):
|
||||
"""Löscht E-Mails aus dem S3-Bucket"""
|
||||
if not emails_to_delete:
|
||||
return 0
|
||||
|
|
@ -171,11 +171,15 @@ def delete_s3_emails(s3, emails_to_delete):
|
|||
if not AUTO_DELETE:
|
||||
# Bestätigung einholen
|
||||
print(f"\nFolgende {len(emails_to_delete)} E-Mails werden gelöscht:")
|
||||
for i, key in enumerate(emails_to_delete[:10]):
|
||||
for key in emails_to_delete:
|
||||
info = email_info.get(key, {})
|
||||
from_addr = info.get('from', 'Unbekannt')
|
||||
to_addr = info.get('to', 'Unbekannt')
|
||||
date = info.get('date', 'Unbekannt')
|
||||
print(f" - {key}")
|
||||
|
||||
if len(emails_to_delete) > 10:
|
||||
print(f" ... und {len(emails_to_delete) - 10} weitere")
|
||||
print(f" Von: {from_addr}")
|
||||
print(f" An: {to_addr}")
|
||||
print(f" Datum: {date}\n")
|
||||
|
||||
confirmation = input("\nMöchten Sie diese E-Mails wirklich löschen? (j/n): ")
|
||||
if confirmation.lower() not in ['j', 'ja', 'y', 'yes']:
|
||||
|
|
@ -221,6 +225,7 @@ def main():
|
|||
new_emails = 0
|
||||
total_emails = 0
|
||||
emails_to_delete = []
|
||||
email_info = {}
|
||||
|
||||
# Alle Seiten durchlaufen
|
||||
for page in pages:
|
||||
|
|
@ -251,7 +256,15 @@ def main():
|
|||
try:
|
||||
headers = BytesParser(policy=policy.default).parsebytes(email_content, headersonly=True)
|
||||
to_address = headers.get('To', '')
|
||||
from_address = headers.get('From', '')
|
||||
date = headers.get('Date', '')
|
||||
message_id = headers.get('Message-ID', '')
|
||||
# E-Mail-Informationen speichern
|
||||
email_info[key] = {
|
||||
'to': to_address,
|
||||
'from': from_address,
|
||||
'date': date
|
||||
}
|
||||
|
||||
# Prüfen, ob die Empfängeradresse gültig ist
|
||||
if is_valid_recipient(to_address):
|
||||
|
|
@ -288,7 +301,7 @@ def main():
|
|||
|
||||
# Ungültige E-Mails löschen
|
||||
if emails_to_delete:
|
||||
deleted_count = delete_s3_emails(s3, emails_to_delete)
|
||||
deleted_count = delete_s3_emails(s3, emails_to_delete, email_info)
|
||||
logger.info(f"Insgesamt {deleted_count} von {len(emails_to_delete)} ungültigen E-Mails gelöscht")
|
||||
|
||||
logger.info(f"Verarbeitung abgeschlossen. Insgesamt {total_emails} E-Mails gefunden, {new_emails} neue heruntergeladen.")
|
||||
|
|
|
|||
Loading…
Reference in New Issue