domain_exists
This commit is contained in:
parent
d6f90f444b
commit
9ef67da70e
|
|
@ -38,8 +38,18 @@ SMTP_HOST = "localhost"
|
||||||
SMTP_PORT = 25
|
SMTP_PORT = 25
|
||||||
API_TOKEN = os.environ.get('API_TOKEN')
|
API_TOKEN = os.environ.get('API_TOKEN')
|
||||||
AWS_REGION = os.environ.get('AWS_REGION', 'us-east-1')
|
AWS_REGION = os.environ.get('AWS_REGION', 'us-east-1')
|
||||||
|
API_KEY = os.environ['MAILCOW_API_KEY']
|
||||||
s3_client = boto3.client('s3', region_name=AWS_REGION)
|
s3_client = boto3.client('s3', region_name=AWS_REGION)
|
||||||
|
|
||||||
|
def domain_exists(domain):
|
||||||
|
url = f"{MAILCOW_API}/get/domain/all"
|
||||||
|
headers = {'X-API-Key': API_KEY}
|
||||||
|
resp = requests.get(url, headers=headers, timeout=5)
|
||||||
|
resp.raise_for_status()
|
||||||
|
domains = resp.json()
|
||||||
|
# domains ist eine Liste von Objekten mit key 'domain_name'
|
||||||
|
return any(d.get('domain_name') == domain for d in domains)
|
||||||
|
|
||||||
def mark_email_as_processed(bucket, key, status, processor='rest-api'):
|
def mark_email_as_processed(bucket, key, status, processor='rest-api'):
|
||||||
"""Setzt processed-Metadaten auf einen beliebigen Status."""
|
"""Setzt processed-Metadaten auf einen beliebigen Status."""
|
||||||
try:
|
try:
|
||||||
|
|
@ -162,6 +172,12 @@ def process_email(domain):
|
||||||
if not recipients:
|
if not recipients:
|
||||||
return jsonify({'error': 'No recipients'}), 400
|
return jsonify({'error': 'No recipients'}), 400
|
||||||
|
|
||||||
|
# … im Handler vor dem Weiterleiten …
|
||||||
|
recipient_domains = {addr.split('@')[-1] for addr in to_addrs}
|
||||||
|
if not any(domain_exists(d) for d in recipient_domains):
|
||||||
|
print("Keine unserer Domains betroffen – skip.")
|
||||||
|
return {'statusCode': 200, 'body': 'Unknown domain'}
|
||||||
|
|
||||||
with smtplib.SMTP(SMTP_HOST, SMTP_PORT) as smtp:
|
with smtplib.SMTP(SMTP_HOST, SMTP_PORT) as smtp:
|
||||||
smtp.sendmail(from_addr, recipients, email_bytes)
|
smtp.sendmail(from_addr, recipients, email_bytes)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue