diff --git a/extract_email_headers.py b/extract_email_headers.py index 83a587c..13c5475 100644 --- a/extract_email_headers.py +++ b/extract_email_headers.py @@ -1,5 +1,6 @@ import sys import email +from email.utils import getaddresses if len(sys.argv) < 2: print("Usage: python3 extract_email_headers.py ") @@ -9,9 +10,15 @@ file_path = sys.argv[1] with open(file_path, 'rb') as f: msg = email.message_from_bytes(f.read()) -from_addr = msg.get('From', '') -to_addrs = msg.get_all('To', []) + msg.get_all('Cc', []) -recipients = ','.join([str(addr) for addr in to_addrs]) if to_addrs else '' +# From: Nur die reine Email-Adresse +from_header = msg.get('From', '') +from_name, from_addr = email.utils.parseaddr(from_header) + +# Recipients: Alle To und Cc, nur reine Emails, kommagetrennt +to_addrs = getaddresses(msg.get_all('To', [])) +cc_addrs = getaddresses(msg.get_all('Cc', [])) +all_addrs = to_addrs + cc_addrs +recipients = ','.join([addr for name, addr in all_addrs if addr]) if all_addrs else '' print(f'FROM:{from_addr}') print(f'RECIPIENTS:{recipients}') \ No newline at end of file diff --git a/requeue-email.sh b/requeue-email.sh index 91d94c0..7b03fa1 100644 --- a/requeue-email.sh +++ b/requeue-email.sh @@ -88,7 +88,7 @@ if [ -z "$FROM" ] || [ -z "$RECIPIENTS" ]; then fi # Domain aus erstem Recipient extrahieren und validieren -FIRST_RECIPIENT=$(echo "$RECIPIENTS" | cut -d',' -f1) +FIRST_RECIPIENT=$(echo "$RECIPIENTS" | cut -d',' -f1 | sed 's/.*.*//') # Reinige falls EXTRACTED_DOMAIN=$(echo "$FIRST_RECIPIENT" | cut -d'@' -f2) if [ "$EXTRACTED_DOMAIN" != "$DOMAIN" ]; then