phpBB: Temporäre E-Mail-Dienste von Registrierung ausschließen

Aus unterschiedlichen Gründen kann es sinnvoll sein, temporäre E-Mail-Dienste von der Registrierung neuer (Foren-)Konten auszuschließen. Anbei ein Bash-Skript, dass diesen Vorgang für die Forensoftware phpBB automatisiert. Nutzung auf eigene Gefahr:

#!/bin/bash
## Auto update phpBB E-Mail blocklist

# Download blocklists
curl -s https://raw.githubusercontent.com/wesbos/burner-email-providers/master/emails.txt > email_blocklist01.txt
curl -s https://raw.githubusercontent.com/disposable-email-domains/disposable-email-domains/master/disposable_email_blocklist.conf > email_blocklist02.txt

# Combine blocklists & remove duplicate lines
cat email_blocklist01.txt email_blocklist02.txt > all_emails.txt
sort all_emails.txt | uniq > clean_emails.txt

# Convert blocklist for phpBB
sed 's/^/*@/' clean_emails.txt > burner_emails.txt

# Combine blocklists
cat burner_emails.txt custom_burner_emails.txt > all_burner_emails.txt

# Get Linux/UNIX timestamp
timestamp=$(date +%s)

# Cleanup phpbb_banlist table
mysql --database=phpbb --execute="TRUNCATE TABLE phpbb_banlist;"

# Insert blocklist into phpbb_banlist table
while IFS= read -r line;
do
$(mysql --database=phpbb --execute="INSERT INTO phpbb_banlist (ban_email, ban_start, ban_reason, ban_give_reason) VALUES ('$line', $timestamp, 'Temporäre E-Mail-Adresse', 'Bitte verwende einen regulären E-Mail-Anbieter.');")
done < all_burner_emails.txt # Manual blocklist mysql --database=phpbb --execute="INSERT INTO phpbb_banlist (ban_email, ban_start, ban_reason, ban_give_reason) VALUES ('*@googlemail.com', $timestamp, 'Spam Anbieter', 'Aufgrund von zu viel Foren-Spam sind Gmail-Adressen nicht zugleassen.');" mysql --database=phpbb --execute="INSERT INTO phpbb_banlist (ban_email, ban_start, ban_reason, ban_give_reason) VALUES ('*@gmail.com', $timestamp, 'Spam Anbieter', 'Aufgrund von zu viel Foren-Spam sind Gmail-Adressen nicht zugleassen.');" ## Cleanup # phpBB cache php /var/www/sites/forum.kuketz-blog.de/bin/phpbbcli.php cache:purge > /dev/null 2>&1
# Files
rm email_blocklist01.txt
rm email_blocklist02.txt
rm all_emails.txt
rm clean_emails.txt
rm burner_emails.txt
rm all_burner_emails.txt

# Send e-mail notification
echo "phpBB E-Mail blocklist updated." | s-nail -E'set nonullbody' -s "phpBB blocklist - [Webserver]" root@localhost
Hilf mit die Spendenziele zu erreichen! Mitmachen ➡