new scripts & new mail from
This commit is contained in:
@@ -1,7 +1,16 @@
|
||||
#!/bin/bash
|
||||
# awsses_lambda_global.sh - SES Setup mit S3 + Global Lambda Shim -> SQS
|
||||
# awsses.sh - SES Setup mit S3 + Global Lambda Shim -> SQS
|
||||
# Dieses Skript ist idempotent: Es kann sicher mehrfach ausgeführt werden.
|
||||
# Globale Lambda für alle Domains.
|
||||
#
|
||||
# MAIL FROM Subdomain:
|
||||
# Standard: mail.${DOMAIN_NAME}
|
||||
# Override: export MAIL_FROM_SUBDOMAIN="mailfrom" (nur der Prefix, ohne Domain)
|
||||
#
|
||||
# Beispiel:
|
||||
# export DOMAIN_NAME="buddelectric.net"
|
||||
# export MAIL_FROM_SUBDOMAIN="mailfrom" # → mailfrom.buddelectric.net
|
||||
# ./awsses.sh
|
||||
|
||||
set -e
|
||||
|
||||
@@ -21,6 +30,10 @@ AWS_REGION=${AWS_REGION:-"us-east-2"}
|
||||
EMAIL_PREFIX=${EMAIL_PREFIX:-""}
|
||||
CONFIGURATION_SET_NAME="relay-outbound"
|
||||
|
||||
# MAIL FROM Subdomain (konfigurierbar)
|
||||
MAIL_FROM_SUBDOMAIN=${MAIL_FROM_SUBDOMAIN:-"mail"}
|
||||
MAIL_FROM_DOMAIN="${MAIL_FROM_SUBDOMAIN}.${DOMAIN_NAME}"
|
||||
|
||||
# Bucket Name generieren falls leer
|
||||
if [ -z "$S3_BUCKET_NAME" ]; then
|
||||
S3_BUCKET_NAME=$(echo "$DOMAIN_NAME" | tr '.' '-' | awk '{print $0 "-emails"}')
|
||||
@@ -35,6 +48,7 @@ LAMBDA_ROLE_NAME="SesShimGlobalRole"
|
||||
|
||||
echo "=========================================================="
|
||||
echo " SES Setup (S3 -> Global Lambda Shim -> SQS) für $DOMAIN_NAME"
|
||||
echo " MAIL FROM: $MAIL_FROM_DOMAIN"
|
||||
echo "=========================================================="
|
||||
|
||||
# ---------------------------------------------------------
|
||||
@@ -46,9 +60,11 @@ if ! aws sesv2 get-email-identity --email-identity ${DOMAIN_NAME} --region ${AWS
|
||||
fi
|
||||
# Update Attributes (Idempotent)
|
||||
aws sesv2 put-email-identity-dkim-attributes --email-identity ${DOMAIN_NAME} --signing-enabled --region ${AWS_REGION}
|
||||
aws sesv2 put-email-identity-mail-from-attributes --email-identity ${DOMAIN_NAME} --mail-from-domain "mail.${DOMAIN_NAME}" --behavior-on-mx-failure USE_DEFAULT_VALUE --region ${AWS_REGION}
|
||||
aws sesv2 put-email-identity-mail-from-attributes --email-identity ${DOMAIN_NAME} --mail-from-domain "${MAIL_FROM_DOMAIN}" --behavior-on-mx-failure USE_DEFAULT_VALUE --region ${AWS_REGION}
|
||||
aws sesv2 put-email-identity-configuration-set-attributes --email-identity ${DOMAIN_NAME} --configuration-set-name "$CONFIGURATION_SET_NAME" --region ${AWS_REGION}
|
||||
|
||||
echo " -> MAIL FROM Domain: ${MAIL_FROM_DOMAIN}"
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 2. SQS Queue holen (nur zur Validierung, Lambda holt dynamisch)
|
||||
# ---------------------------------------------------------
|
||||
@@ -149,7 +165,7 @@ RULE_JSON=$(jq -n \
|
||||
--arg larn "$LAMBDA_ARN" \
|
||||
--arg rule "$RULE_NAME" \
|
||||
--arg domain "$DOMAIN_NAME" \
|
||||
--arg subdomain "mail.$DOMAIN_NAME" \
|
||||
--arg subdomain "${MAIL_FROM_DOMAIN}" \
|
||||
'{
|
||||
Name: $rule,
|
||||
Enabled: true,
|
||||
@@ -181,7 +197,12 @@ else
|
||||
fi
|
||||
# Aktivieren
|
||||
aws ses set-active-receipt-rule-set --rule-set-name "bizmatch-ruleset" --region ${AWS_REGION}
|
||||
|
||||
echo "========================================================"
|
||||
echo "✅ Setup erfolgreich. Globale Lambda ($LAMBDA_NAME) für alle Domains."
|
||||
echo " S3 -> Lambda -> Domain-spezifische SQS"
|
||||
echo "✅ Setup erfolgreich."
|
||||
echo " Domain: $DOMAIN_NAME"
|
||||
echo " MAIL FROM: $MAIL_FROM_DOMAIN"
|
||||
echo " S3 Bucket: $S3_BUCKET_NAME"
|
||||
echo " SQS Queue: $QUEUE_NAME"
|
||||
echo " Lambda: $LAMBDA_NAME (global)"
|
||||
echo "========================================================"
|
||||
Reference in New Issue
Block a user