Fixes
This commit is contained in:
parent
ce296ecdab
commit
a709172a99
|
|
@ -1,4 +1,3 @@
|
||||||
# lambda_andreasknuth.py
|
|
||||||
import os
|
import os
|
||||||
import boto3
|
import boto3
|
||||||
import smtplib
|
import smtplib
|
||||||
|
|
@ -140,11 +139,10 @@ def lambda_handler(event, context):
|
||||||
delivered = []
|
delivered = []
|
||||||
refused = {}
|
refused = {}
|
||||||
if recipients:
|
if recipients:
|
||||||
# Prepare message string for sendmail (decode bytes safely)
|
# WICHTIG: Verwenden Sie die rohen Bytes direkt, NICHT dekodieren!
|
||||||
try:
|
# smtplib.sendmail() akzeptiert sowohl bytes als auch strings
|
||||||
raw_message = raw_bytes.decode('utf-8')
|
# Bei bytes wird keine weitere Kodierung vorgenommen
|
||||||
except Exception:
|
raw_message = raw_bytes
|
||||||
raw_message = raw_bytes.decode('utf-8', errors='replace')
|
|
||||||
|
|
||||||
# Determine a sensible local hostname (HELO). Prefer explicit ENV, else use domain of bucket (recipient domain).
|
# Determine a sensible local hostname (HELO). Prefer explicit ENV, else use domain of bucket (recipient domain).
|
||||||
env_local = os.environ.get('SMTP_LOCAL_HOSTNAME')
|
env_local = os.environ.get('SMTP_LOCAL_HOSTNAME')
|
||||||
|
|
@ -171,6 +169,7 @@ def lambda_handler(event, context):
|
||||||
print("SMTP login failed (continuing):", e)
|
print("SMTP login failed (continuing):", e)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
# Sende die rohen Bytes direkt
|
||||||
send_result = smtp.sendmail(frm_addr, recipients, raw_message)
|
send_result = smtp.sendmail(frm_addr, recipients, raw_message)
|
||||||
# sendmail returns dict of refused recipients
|
# sendmail returns dict of refused recipients
|
||||||
if isinstance(send_result, dict):
|
if isinstance(send_result, dict):
|
||||||
|
|
@ -189,10 +188,12 @@ def lambda_handler(event, context):
|
||||||
delivered = [r for r in recipients if r not in refused]
|
delivered = [r for r in recipients if r not in refused]
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("SMTP sendmail error:", e)
|
print("SMTP sendmail error:", e)
|
||||||
|
traceback.print_exc() # Mehr Details für Debugging
|
||||||
refused = {r: ('error', str(e)) for r in recipients}
|
refused = {r: ('error', str(e)) for r in recipients}
|
||||||
delivered = []
|
delivered = []
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("Error connecting to SMTP host:", e)
|
print("Error connecting to SMTP host:", e)
|
||||||
|
traceback.print_exc() # Mehr Details für Debugging
|
||||||
refused = {r: ('connect-error', str(e)) for r in recipients}
|
refused = {r: ('connect-error', str(e)) for r in recipients}
|
||||||
delivered = []
|
delivered = []
|
||||||
print(f"SMTP completed in {time.time()-start:.2f}s delivered={delivered} refused={refused}")
|
print(f"SMTP completed in {time.time()-start:.2f}s delivered={delivered} refused={refused}")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue