Ich habe eine Mailq, die mit mehreren E-Mails mit derselben Betreffzeile gesichert wird. Ich möchte alle E-Mails in der MailQ löschen, die einer bestimmten Betreffzeile entsprechen, damit sie nicht gesendet werden. Irgendwelche Ideen, wie das geht? Ziemlich dringend, da es sich um Spam handelt.
7
Antworten:
Postfix verfügt nicht über ein Dienstprogramm wie exigrep. Sie müssen daher die Warteschlangendateien für den Betreff durchsuchen und dann die Warteschlangen-ID an postsuper weiterleiten, um sie zu löschen
quelle
Bei einer typischen Postfix-Installation befindet sich die E-Mail in / var / spool / postfix. Es gibt mehrere Warteschlangen. Sie möchten Postfix stoppen, damit Sie Postsuper sicher zum Entfernen der E-Mails verwenden können. Dieses kurze Skript entfernt alle E-Mails, die einer bestimmten Zeichenfolge entsprechen. In unserem Fall mussten wir Tausende von E-Mails finden, die alle dieselbe Betreffzeile hatten.
In diesem Fall wurden alle E-Mails zurückgestellt, da unser Remailing-Service sie abgelehnt hatte, weil wir das Limit überschritten hatten.
Einige wichtige Hinweise dazu:
Ich hoffe, dies hilft Menschen, die dies finden und nach genaueren Anweisungen suchen.
quelle
postcat
Ausgabe funktioniert in diesen Fällen nicht.Nur ein alternativer Befehl, um dasselbe zu tun, der von gview vorgeschlagen wurde:
quelle
Heutzutage kann postqueue strukturiertes json mit -j ausgeben.
Sie können die erforderlichen Informationen mit einfachem grep oder einem json-Parser in Ihrer Lieblingssprache extrahieren.
zB Warteschlangen-ID und E-Mail mit sed extrahieren:
Sie können es wie folgt fortsetzen:
egrep, um die gewünschten Adressen zu filtern, zu schneiden, um das erste Feld zu erhalten, und postsuper -d -, um alle empfangenen Warteschlangen-IDs aus der Pipe zu entfernen. Sie können einen Alias für eine einfache Lösung erstellen oder natürlich Python / Perl / Was auch immer verwenden, um Ihre anspruchsvolle Lösung zu erstellen.
quelle
Sie können verwenden:
quelle