-
-
Save aalmenar/b70fca60984f93bca5740ce525b1971c to your computer and use it in GitHub Desktop.
rspamd learn spam and ham from imap-server using curl. Randomize rspamd frontends with fallback.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| function log_error() { echo `date '+%Y-%m-%d %H:%M:%S'` ERROR: $1 >&2; } | |
| function log() { echo `date '+%Y-%m-%d %H:%M:%S'` INFO: $1; } | |
| MAIL=$(tee) | |
| SERVER_LIST="['10.10.115.15', '10.10.115.16']" | |
| PASSWORD="p455w0rD" | |
| SERVERS=($(python -c "from random import shuffle; server=${SERVER_LIST}; shuffle(server); print(' '.join(server))")) | |
| for SERVER in ${SERVERS[@]}; do | |
| log "Trying to report spam to ${SERVER}" | |
| RETURN=$(/usr/bin/curl -s --connect-timeout 1 -H "Password: ${PASSWORD}" --data-binary --url "http://${SERVER}:11334/learnham" -d "${MAIL}") | |
| STATUS=$? | |
| if [ $STATUS -eq 0 ]; then | |
| log "Spam reported to ${SERVER}: ${RETURN}" | |
| exit 0 | |
| else | |
| if [ $STATUS -eq 28 ]; then | |
| log_error "Reporting SPAM to ${SERVER} failed: Connection timed out." | |
| else | |
| log_error "Reporting SPAM to ${SERVER} failed: CURL exit status ${STATUS}" | |
| fi | |
| fi | |
| done | |
| log_error "Reporting SPAM failed ${SERVERS[@]}" | |
| exit 1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| function log_error() { echo `date '+%Y-%m-%d %H:%M:%S'` ERROR: $1 >&2; } | |
| function log() { echo `date '+%Y-%m-%d %H:%M:%S'` INFO: $1; } | |
| MAIL=$(tee) | |
| SERVER_LIST="['10.10.110.15', '10.10.110.16']" | |
| PASSWORD="p455w0rD" | |
| SERVERS=($(python -c "from random import shuffle; server=${SERVER_LIST}; shuffle(server); print(' '.join(server))")) | |
| for SERVER in ${SERVERS[@]}; do | |
| log "Trying to report spam to ${SERVER}" | |
| RETURN=$(/usr/bin/curl -s --connect-timeout 1 -H "Password: ${PASSWORD}" --data-binary --url "http://${SERVER}:11334/learnspam" -d "${MAIL}") | |
| STATUS=$? | |
| if [ $STATUS -eq 0 ]; then | |
| log "Spam reported to ${SERVER}: ${RETURN}" | |
| exit 0 | |
| else | |
| if [ $STATUS -eq 28 ]; then | |
| log_error "Reporting SPAM to ${SERVER} failed: Connection timed out." | |
| else | |
| log_error "Reporting SPAM to ${SERVER} failed: CURL exit status ${STATUS}" | |
| fi | |
| fi | |
| done | |
| log_error "Reporting SPAM failed ${SERVERS[@]}" | |
| exit 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment