– pentru a vedea ce e în coadă:
mailq
pentru a se vedea un mesaj din coadă se reține id-ul afișat de mailq la mesajul dorit (ceva de genul; E566416C01FB), și se rulează:
postcat -vq MESAGE-ID
– pentru a rula tot ce e în coadă (flush):
postqueue -f
– pentru a șterge tot ce e în coadă:
postsuper -d ALL
– pentru a șterge tot ce este cu eroare (deffered) din coada:
postsuper -d ALL deferred
– pentru a șterge anumite mesaje din coada după un criteriu dorit (schimbați ce este cu roșu):
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } / byrdsnestquilt@bellsouth\.net/ { print $1 }' | tr -d '*!' | postsuper -d -
– sau se creează și se rulează scriptul, creați un fișier pe server:
vi /postfix-delete.pl
– cu conținutul:
#!/usr/bin/perl my $REGEXP = shift(@ARGV) || die “no email-adress given (regexp-style, e.g. bl.*\@yahoo.com)!”; my %Q; my $queue_id; my @data = `/usr/sbin/postqueue -p`; foreach my $line (@data) { if ($line =~ /^(\w+)(\*|\!)?\s/) { $queue_id = $1; } if($queue_id) { if ($line =~ /$REGEXP/i) { $Q{$queue_id} = 1; $queue_id = “”; } } } open(POSTSUPER,”|postsuper -d -”) || die “couldn’t open postsuper” ; foreach my $key (keys %Q) { print POSTSUPER “$key\n”; } close(POSTSUPER);
– îi dăm drepturile de rigoare:
chmod 777 /postfix-delete.pl
– și dacă dorim să ștergem domeniul să zicem @gogu.com, rulăm:
/postfix-delete.pl
gogu.com
– dacă dorim să ștergem orice mail care conține cuvântul gogu, rulăm:
/postfix-delete.pl
gogu
– se întâmpla să se trimită mailuri multe de pe server (spam intenționat sau nu), dacă nu știm se vor trimite multe și va intra serverul în tot felul de liste de spam. Pentru a evita asta facem un script care să verifice și să trimită mail la o adresă când se atinge un număr stabilit de noi de mailuri în coadă.
– creăm un fișier /home/verificamailq care va trimite mail când se va atinge un număr de mailuri în coadă ales de noi, ce e cu roșu, trebuie pus ce doriți:
touch /home/verificamailq chmod 777 /home/verificamailq vi /home/verificamailq
– și introducem în el:
/usr/bin/mailq |grep Requests |awk '{print $5}' > /home/mailqnr MAILS=`cat /home/mailqnr` if [ "$MAILS" -gt 30 ]; then mail -s "$MAILS mailuri pe serverulmeu, `date +%F`" adresameade@mail.com < /home/mailqnr else echo ""
– acum introducem și în crontab să verifice la 10 minute:
crontab -e
– și introducem:
*/10 * * * * /home/verificamailq
Cum sa blocam IP sau domeniu în Postfix pentru a evita spam-ul din destinații pe care le știm:
Trebuie sa definim 2 noi parametrii în postfix, mai exact:
check_client_access
Blochează după client IP, Client IP Range sau Hostnamecheck_sender_access
Blochează după sender e-mail address/domenii (se ia după ce e pus la FROM)
Mai intii adaugam in mail.cf din postfix pe langa ce este deja acolo:
vi /etc/postfix/main.cf
smtpd_recipient_restrictions =
check_client_access hash:/etc/postfix/client_checks,
check_sender_access hash:/etc/postfix/sender_checks,
etc….
etc….
Și acum facem fișierele definite anterior:
vi /etc/postfix/client_checks
# restrictii de unde o sa acceptam
example.com REJECT Hai sictir spamere
.example.com REJECT Hai sictir spamere
123.456.789.123 REJECT Folositi un IP de spam
123.456.789.0/24 REJECT Folositi un IP dintr-o clasa de spam
321.987.654.321 OK example1.com OK
vi /etc/postfix/sender_checks
# Restricts sender addresses this system accepts in MAIL FROM commands.
example.com REJECT mesaje de la any@example.com respinse
.example.com REJECT mesaje de la any@sub.example.com respinse
user@example.com REJECT Hai sictir spamere
example2.com OK
Acum restartăm tot și va funcționa:
postmap /etc/postfix/client_checks postmap /etc/postfix/sender_checks /etc/init.d/postfix reload
daca o ia razna amavis:
postconf -e 'content_filter = amavis:[127.0.0.1]:10024'
postfix flush
in ispcp sau imscp (schimbati doar calea) daca vrem sa anulam un domeniu sa poata trimita mail catre el care este pe alt server:
mcedit /etc/postfix/imscp/domains
– punem # in fata domeniului care vrem sa-l anulam de pe acest server
cp /etc/postfix/imscp/domains /etc/imscp/postfix/working
cd /etc/postfix/imscp/
postmap domains
Cum primesc automat BCC mail către mai mulți utilizatori în Postfix?
# /etc/postfix/main.cf
sender_bcc_maps = hash:/etc/postfix/recipient_bcc
# /etc/postfix/recipient_bbc
contact1@example.com<TAB>user1@example.com
contact2@example.com user1@example.com
postmap /etc/postfix/recipient_bcc && /etc/init.d/postfix restart
Știri postfix: