mirror of
https://blitiri.com.ar/repos/chasquid
synced 2026-01-10 18:05:57 +00:00
etc: Add a skeleton configuration structure
This patch adds an "etc" directory, with a basic configuration structure that can be used for an initial installation.
This commit is contained in:
55
etc/chasquid/hooks/post-data
Executable file
55
etc/chasquid/hooks/post-data
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This file is an example post-data hook that will run standard filtering
|
||||
# utilities if they are available.
|
||||
#
|
||||
# - greylist (from greylistd) to do greylisting.
|
||||
# - spamc (from Spamassassin) to filter spam.
|
||||
# - clamdscan (from ClamAV) to filter virus.
|
||||
#
|
||||
# If it exits with code 20, it will be considered a permanent error.
|
||||
# Otherwise, temporary.
|
||||
|
||||
set -e
|
||||
|
||||
|
||||
# Note greylistd needs you to add the user to the "greylist" group:
|
||||
# usermod -a -G greylist mail
|
||||
if [ "$AUTH_AS" == "" ] && [ "$SPF_PASS" == "0" ] && \
|
||||
command -v greylist >/dev/null && \
|
||||
groups | grep -q greylist;
|
||||
then
|
||||
REMOTE_IP=$(echo "$REMOTE_ADDR" | rev | cut -d : -f 2- | rev)
|
||||
if ! greylist update "$REMOTE_IP" "$MAIL_FROM" 1>&2; then
|
||||
echo "greylisted, please try again"
|
||||
exit 75 # temporary error
|
||||
fi
|
||||
echo "X-Greylist: pass"
|
||||
fi
|
||||
|
||||
|
||||
TF="$(mktemp --tmpdir post-data-XXXXXXXXXX)"
|
||||
trap 'rm "$TF"' EXIT
|
||||
|
||||
# Save the message to the temporary file, so we can pass it on to the various
|
||||
# filters.
|
||||
cat > "$TF"
|
||||
|
||||
|
||||
if command -v spamc >/dev/null; then
|
||||
if ! SL=$(spamc -c - < "$TF") ; then
|
||||
echo "spam detected"
|
||||
exit 20 # permanent
|
||||
fi
|
||||
echo "X-Spam-Score: $SL"
|
||||
fi
|
||||
|
||||
|
||||
if command -v clamdscan >/dev/null; then
|
||||
if ! clamdscan --no-summary --infected - < "$TF" 1>&2 ; then
|
||||
echo "virus detected"
|
||||
exit 20 # permanent
|
||||
fi
|
||||
echo "X-Virus-Scanned: pass"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user