2c321d3605e16e861e1e3a4c8a6fff1f899ec386
configuration/sendEmails.sh
| ... | ... | @@ -93,21 +93,38 @@ $(echo -n "$BODY" | base64 -w76) |
| 93 | 93 | MIME |
| 94 | 94 | ) |
| 95 | 95 | |
| 96 | - if echo "$MIME_MSG" | curl --silent --show-error \ |
|
| 97 | - --url "$SMTP_URL" \ |
|
| 98 | - --ssl-reqd \ |
|
| 99 | - --mail-from "support@sapsailing.com" \ |
|
| 100 | - --mail-rcpt "$EMAIL" \ |
|
| 101 | - --user "${SMTP_USER}:${SMTP_PASS}" \ |
|
| 102 | - --upload-file -; then |
|
| 103 | - echo "Sent to $EMAIL ($NAME)" |
|
| 104 | - SENT=$((SENT + 1)) |
|
| 105 | - else |
|
| 96 | + RETRIES=0 |
|
| 97 | + MAX_RETRIES=3 |
|
| 98 | + SEND_OK=false |
|
| 99 | + while [[ $RETRIES -le $MAX_RETRIES ]]; do |
|
| 100 | + if echo "$MIME_MSG" | curl --silent --show-error \ |
|
| 101 | + --url "$SMTP_URL" \ |
|
| 102 | + --ssl-reqd \ |
|
| 103 | + --mail-from "support@sapsailing.com" \ |
|
| 104 | + --mail-rcpt "$EMAIL" \ |
|
| 105 | + --user "${SMTP_USER}:${SMTP_PASS}" \ |
|
| 106 | + --upload-file - 2>/tmp/curl_err.txt; then |
|
| 107 | + echo "Sent to $EMAIL ($NAME)" |
|
| 108 | + SENT=$((SENT + 1)) |
|
| 109 | + SEND_OK=true |
|
| 110 | + break |
|
| 111 | + else |
|
| 112 | + if grep -q "421" /tmp/curl_err.txt 2>/dev/null; then |
|
| 113 | + RETRIES=$((RETRIES + 1)) |
|
| 114 | + WAIT=$((RETRIES * 5)) |
|
| 115 | + echo " Rate limited, retrying in ${WAIT}s... (attempt $((RETRIES))/$MAX_RETRIES)" >&2 |
|
| 116 | + sleep "$WAIT" |
|
| 117 | + else |
|
| 118 | + break |
|
| 119 | + fi |
|
| 120 | + fi |
|
| 121 | + done |
|
| 122 | + if [[ "$SEND_OK" == false ]]; then |
|
| 106 | 123 | echo "FAILED: $EMAIL ($NAME)" >&2 |
| 107 | 124 | FAILED=$((FAILED + 1)) |
| 108 | 125 | fi |
| 109 | 126 | |
| 110 | - sleep 1 |
|
| 127 | + sleep 3 |
|
| 111 | 128 | done < "$CSV" |
| 112 | 129 | |
| 113 | 130 | echo "" |