Správa poštovní fronty je klíčovou součástí administrace serveru, zejména při odhalování a odstraňování nevyžádané nebo problematické pošty. V tomto článku se zaměříme na konkrétní případ: jak na serveru s CentOS 7 odstranit e-maily ve frontě, které pochází od jednoho odesílatele – například Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.
. Postup bude demonstrován na systému s nainstalovaným Postfixem, který je v CentOS 7 nejčastěji používaným MTA (Mail Transfer Agentem).
Proč filtrovat a mazat zprávy podle odesílatele
V některých případech může dojít k zahlcení poštovní fronty zprávami od jediného odesílatele. Důvody mohou být různé – chybně nakonfigurovaná aplikace, testování, nebo dokonce pokus o spam. Ruční mazání desítek nebo stovek zpráv by bylo neefektivní, proto je nutné přistoupit k filtrování a automatizovanému odstranění.
Zobrazení e-mailové fronty v CentOS 7
Nejprve si ověřte aktuální stav fronty:
mailq
nebo:
postqueue -p
Tyto příkazy vypíší všechny zprávy aktuálně ve frontě – jejich ID, velikost, stáří a adresy odesílatele/příjemce.
Zjištění ID zpráv od konkrétního odesílatele
Chceme vyfiltrovat pouze ty zprávy, které pochází od odesílatele Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.
. K tomu poslouží kombinace nástrojů grep
, awk
a xargs
:
mailq | grep -B1 "Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript." | grep '^[A-F0-9]' | awk '{print $1}' | tr -d '*!' > ids.txt
Tento příkaz:
-
vyhledá všechny zprávy obsahující danou e-mailovou adresu,
-
pomocí -B1
zachytí také řádek před výskytem adresy (kde je ID zprávy),
-
pomocí awk
a tr
získá čisté ID zprávy,
-
uloží ID do souboru ids.txt
pro snadné další zpracování.
Odstranění zpráv pomocí příkazu postsuper
Souborem ids.txt
nyní můžete hromadně smazat požadované zprávy:
cat ids.txt | xargs -n 1 postsuper -d
Každé ID bude samostatně smazáno z fronty pomocí příkazu postsuper -d
.
Kontrola výsledku
Po smazání zpráv doporučujeme ověřit aktuální stav fronty:
mailq
Pokud se žádné zprávy od daného odesílatele již nezobrazují, operace proběhla úspěšně.
Automatizace pomocí shell skriptu
Pro opakované použití můžete celý proces zapsat do jednoduchého shell skriptu:
#!/bin/bash
grep -B1 "Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript." < <(mailq) | grep '^[A-F0-9]' | awk '{print $1}' | tr -d '*!' | xargs -n 1 postsuper -d
Skript stačí uložit např. jako remove_from_queue.sh
, dát mu spustitelná práva (chmod +x remove_from_queue.sh
) a spustit podle potřeby.
Odstranění zpráv od konkrétního odesílatele z fronty v CentOS 7 s Postfixem je efektivní způsob, jak udržet poštovní server stabilní a přehledný. Využívání nástrojů jako grep
, awk
, xargs
a postsuper
je nezbytnou výbavou každého správce serveru. Pokud provozujete e-mailový server ve výrobním prostředí, doporučuje se monitorování fronty pravidelně automatizovat a včas detekovat podezřelé adresy.
Chcete-li podobné operace zjednodušit, je možné integrovat tento postup do monitorovacího nástroje jako je Zabbix nebo použít rozhraní pro správu Postfixu.