diff --git a/basic_setup/awsses.sh b/basic_setup/awsses.sh index 07b21d4..dba296b 100755 --- a/basic_setup/awsses.sh +++ b/basic_setup/awsses.sh @@ -62,34 +62,48 @@ aws sesv2 put-email-identity-mail-from-attributes \ --behavior-on-mx-failure USE_DEFAULT_VALUE \ --region ${AWS_REGION} -# Überprüfen, ob der Rule Set existiert, sonst erstellen -echo "Überprüfe oder erstelle Receipt Rule Set..." -RULESET_EXISTS=$(aws ses describe-receipt-rule-sets --region ${AWS_REGION} | jq -r '.RuleSets[] | select(.Name == "bizmatch-ruleset") | .Name') +# ------------------------ +# Rule Set & Receipt Rule +# ------------------------ -if [ -z "$RULESET_EXISTS" ]; then +# 1. Rule Set prüfen/erstellen +echo "Überprüfe Rule Set 'bizmatch-ruleset'..." +# Korrekter Befehl ist 'list-receipt-rule-sets' +RULESET_EXISTS=$(aws ses list-receipt-rule-sets --region ${AWS_REGION} | jq -r '.RuleSets[] | select(.Name == "bizmatch-ruleset") | .Name') + +if [ "$RULESET_EXISTS" != "bizmatch-ruleset" ]; then echo "Receipt Rule Set 'bizmatch-ruleset' existiert nicht, wird erstellt..." aws ses create-receipt-rule-set --rule-set-name "bizmatch-ruleset" --region ${AWS_REGION} else echo "Receipt Rule Set 'bizmatch-ruleset' existiert bereits." fi -# Receipt Rule erstellen -echo "Receipt Rule für E-Mail-Empfang erstellen..." -aws ses create-receipt-rule --rule-set-name "bizmatch-ruleset" --rule '{ - "Name": "'"${RULE_NAME}"'", - "Enabled": true, - "ScanEnabled": true, - "Actions": [{ - "S3Action": { - "BucketName": "'"${S3_BUCKET_NAME}"'", - "ObjectKeyPrefix": "'"${EMAIL_PREFIX}"'" - } - }], - "TlsPolicy": "Require", - "Recipients": ["'"${DOMAIN_NAME}"'"] -}' --region ${AWS_REGION} +# 2. Receipt Rule prüfen/erstellen +echo "Überprüfe Receipt Rule '${RULE_NAME}'..." -# Prüfen, ob der Rule Set aktiv ist +# Wir prüfen, ob die Regel schon existiert. Wenn NICHT (!), erstellen wir sie. +if ! aws ses describe-receipt-rule --rule-set-name "bizmatch-ruleset" --rule-name "${RULE_NAME}" --region ${AWS_REGION} >/dev/null 2>&1; then + + echo "Erstelle Receipt Rule '${RULE_NAME}'..." + aws ses create-receipt-rule --rule-set-name "bizmatch-ruleset" --rule '{ + "Name": "'"${RULE_NAME}"'", + "Enabled": true, + "ScanEnabled": true, + "Actions": [{ + "S3Action": { + "BucketName": "'"${S3_BUCKET_NAME}"'", + "ObjectKeyPrefix": "'"${EMAIL_PREFIX}"'" + } + }], + "TlsPolicy": "Require", + "Recipients": ["'"${DOMAIN_NAME}"'"] + }' --region ${AWS_REGION} + +else + echo "Receipt Rule '${RULE_NAME}' existiert bereits. Überspringe Erstellung." +fi + +# 3. Rule Set aktivieren (falls noch nicht aktiv) ACTIVE_RULESET=$(aws ses describe-active-receipt-rule-set --region ${AWS_REGION} | jq -r '.Metadata.Name') if [ "$ACTIVE_RULESET" != "bizmatch-ruleset" ]; then