Postfix mail queue menedzsment
Hogyan tudom megnézni, milyen emailek várakoznak kiküldésre? Milyen levelek kerültek elutasításra és mi ennek az oka?
A technológia előrehaladtával, továbbra sem lehetünk biztosak, hogy az elküldött email-ünk megérkezett-e a címzetthez, vagy a spam, vírusírtó, tűzfal, kéretlen levél szűrő rengetegén át tudott-e jutni.
Tehát szeretnénk megtudni, mennyi és milyen email ragadt a mail queue-ban, milyen levelek ezek és miért volt sikertelen a kiküldésük. Egy linux rendszergazdának fontos információt is hordozhat, mert egy tömeges spamet küldő weboldal miatt az üzemeltetett linux szerver IP címét blokkolhatják a nagyobb levelező szerverek.
A postfix mail queue lekérdezése, kiküldendő emailek státusza
# qshape
T 5 10 20 40 80 160 320 640 1280 1280+
TOTAL 0 0 0 0 0 0 0 0 0 0 0
A qshape parancs segítségével megkapjuk, a postfix mail queue-ban épp mennyi levél várakozik. Itt magas forgalmú szerver esetén (ez a magas forgalom lehet egy spam áradat hatása is) kiküldésre is várakozhatnak levelek, de a már visszautasított emailek is itt várakoznak.
Szerencsés esetben a kimenetünk olyan, mint amit fent láthatnak.
Amennyiben a visszautasított emailek számára vagyunk kíváncsiak, a qshape deferred parancs segítségével kapjuk meg, domain nevenként (levelező szerverenként):
# qshape deferred T 5 10 20 40 80 160 320 640 1280 1280+ TOTAL 10 0 0 0 0 0 0 0 2 0 8 gmail.com 10 0 0 0 0 0 0 0 2 0 8
A mail queue-ban lévő emailek vizsgálata
A várakozó sorban lévő email-ek ellenőrzése, vizsgálata, hogyan tudom kilistázni, elolvasni a mail queue-ben lévő leveleket?
Az összes level listázása a mailq vagy a postqueue -p paranccsal történhet, és ehhez hasonló kimenetet kapunk:
3F25925ADB8 1688 Fri Apr 24 17:32:20 test1@example.com (connect to m.aaagmail.com[xxx.xxx.xxx.xxx]:25: Connection refused) borwec1@m.aaagmail.com
Kiemeletem a Queue ID-t, az email egyedi azonosítóját. Ezen kívül megtudjuk a levél méretét, a küldés idejét, a küldő email címet, röviden a probléma okát, és a címzettet.
Most például kiolvasható, hogy a borwec1@m.aaagmail.com email címhez tartozó m.aaagmail.com domain névnek, m.aaagmail.com az MX rekordja, tehát a levelező szerverként ez van beállítva, de a 25-ös portra történő csatlakozás vissza lett utasítva. Egy linux rendszergazda tudja, hogy ennek számos oka lehet, például:
- elírták az email címet
- hibás a domain név MX beállítása
- rossz helyre mutat a levelező szerver IP címe
- nincs az adott szerver 25-ös portján levelezés kiszolgálás
- vagy csak épp foglalt a port egy DoS támadás okán.
- vagy a mi IP címünkről nem fogad a szerver levelet.
Pont ezen okok miatt marad a queue-ban a küldendő email, hogy újra tudja próbálni a küldést.
A mail queue-ban lévő email elolvasása
Sosem igazán jó, ha a queue-ban levelek várakoznak, így a szükségtelenül ott várakozókat törölnénk, de ehhez szeretnénk beleolvasni a mail queue-s emailekbe. Ez megtehetjük a postcat -q, postcat -qv paranccsal. Természetesen a v paraméter itt is a verbose opció, tehát részletesebb adatokat kapunk. Egy példa válaszra:
root@test1:~# postcat -q 3F25925ADB8 *** ENVELOPE RECORDS deferred/3/3F25925ADB8 *** message_size: 1688 612 1 0 1688 message_arrival_time: Fri Apr 24 17:32:20 2015 create_time: Fri Apr 24 17:32:20 2015 named_attribute: rewrite_context=local sender: test1@example.com named_attribute: encoding=8bit named_attribute: log_client_name=localhost named_attribute: log_client_address=127.0.0.1 named_attribute: log_client_port=41051 named_attribute: log_message_origin=localhost[127.0.0.1] named_attribute: log_helo_name=localhost named_attribute: log_protocol_name=ESMTP named_attribute: client_name=localhost named_attribute: reverse_client_name=localhost named_attribute: client_address=127.0.0.1 named_attribute: client_port=41051 named_attribute: helo_name=localhost named_attribute: protocol_name=ESMTP named_attribute: client_address_type=2 named_attribute: dsn_orig_rcpt=rfc822;borwec1@m.aaagmail.com original_recipient: borwec1@m.aaagmail.com recipient: borwec1@m.aaagmail.com *** MESSAGE CONTENTS deferred/3/3F25925ADB8 *** Received: from localhost (localhost [127.0.0.1]) by exmaple.com (Postfix) with ESMTP id 3F25925ADB8 for <borwec1@m.aaagmail.com>; Fri, 24 Apr 2015 17:32:20 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at srv3.neunet.hu Received: from example.com ([127.0.0.1]) by localhost (example.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XWIxIaiwAOlx for <borwec1@m.aaagmail.com>; Fri, 24 Apr 2015 17:32:19 +0200 (CEST) Received: by example.com (Postfix, from userid 5093) id 7F52C25ADB2; Fri, 24 Apr 2015 17:32:19 +0200 (CEST) To: borwec1@m.aaagmail.com Subject: =?utf-8?Q?M=C3=A1solat_-_Abilify_Medicine_Company?= X-PHP-Originating-Script: 5093:phpmailer.php Date: Fri, 24 Apr 2015 17:32:19 +0200 From: AGSGSGA <info@example.com> Message-ID: <972a6c9e1492cc6c6b3476758cf3f2d2@www.example.com> X-Priority: 3 X-Mailer: PHPMailer [version 1.73] MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="utf-8" Másolat - Ez egy érdeklődő e-mail a(z) http://www.example.com/ webhelyről, melynek feladója: Christyol <borwec1@m.aaagmail.com> Women's Health Clinic Katy Lopressor Black Box Warning Drugs . 3d puzzle plan Pro Banthine Migrate Mexico Adipex Online Pharmacy List Of The Best Acai Berry Supplements Using Ativan For Alcohol Withdrawal Benzodiazepines Allergy Time Table Stevens Johnson Syndrome And Levaquin . Crc Colon Cancer Singulair 10 Mg Current Antifungal Prescription Fluconazole Questions Overdose Oxycodone Online No Prescription Hydrocodone Vicodin. Using A Spacer For Diabetes And Sexual Side Effects Xanax Addiction Tylenol Cold Daytime How To Make Buy Viagra For Kids . *** HEADER EXTRACTED deferred/3/3F25925ADB8 *** named_attribute: encoding=8bit *** MESSAGE FILE END deferred/3/3F25925ADB8 *** root@test1:~#
Mint láthatjuk ez egy weboldalon keresztül küldött email, a spam küldők a másolat küldésén keresztül igyekeznek spam emailt küldeni.
Hogy küldhetjük újra a levelet a postfix mail queue-ből?
Amennyiben a hiba elhárult, ami azt okozta, hogy az emailt nem tudtuk kézbesíteni, akkor újra próbálhatjuk küldeni az emailt. Ezt a postqueue -i paranccsal tudjuk megtenni, például:
postqueue -i 75AE125ADBA
Küldés közben a levelező szerverünk napló bejegyzéseit olvashatjuk, hogy meg tudjuk állapítani, hogy sikeres lett-e az újraküldés:
tail -f /var/log/mail.{err,log}
Az összes email újraküldése a postfix-ben várakozó levelekből
postqueue -f
A parancs hatására az összes várakozó levelet megpróbáljuk újra kiküldeni, ürítsük a queue-t. Ennek akkor van értelme, ha például átmenetileg a mi szerverünk volt tiltólistán és a tiltás feloldása után az emiatt várakozó emaileket akarjuk kiküldeni, amik maguktól órákkal, napokkal később próbálkoznának újra.
A várakozó emailek törlése a mail queue-ból
Amennyiben olyan emailek várakoznak csak, amelyeket, nem akarunk kiküldeni, akkor törölni szeretnénk a nemkívánatos leveletek.
Az összes elutasított email törlése
postsuper -d ALL deferred
Ez az eset állhat fenn például, ha egy osztott webszerver egyik weboldalán keresztül küld ki egy spammer akár több ezer levelet, ami egyrészt lefoglalja a szerverünk, másrészt kitilthatják a szerverek a levél fogadást az adott IP címről, így nagyon sok levél várakozhat, illetve visszapattanhat.
Egy konkrét azonosítójú levél törlése
Ha csak egy levél ismételt kiküldését akarjuk megszakítani:
postsuper -d 75AE125ADBA
Bizonyos minta szerinti levelek törlése
A korábban már többször említett feltört weboldalon keresztüli tömeges email kiküldés esetén például a feladó szerint szeretnénk szűrni, majd törölni a levelet, ezt a hasonlóképp megtehetjük egy egyszerű shell scripttel:
mailq | tail -n +2 | grep -v '^ *(' | awk 'BEGIN { RS = "" } {
if ($7 == "TEST1@EXAMPLE.COM" && $9 == "") print $1 } ' | tr -d '*!'
| postsuper -d -
Esetünkben a mailq parancs kimenetéből feldolgozzuk az email címeket tartalmazó sorokat, kiválogatjuk a test1@exmaple.com feladókat és a hozzájuk tartozó Queue ID-t átadjuk a postsuper -d parancsnak.
Példánkban a $7 a feladó, $8 a címzett, ha az alapján szeretnénk a törlést végezni.
No Comments.