Remove backscatter mails from mailbox

Φίλος μου ζήτησε βοήθεια ώστε να καθαρίσει διάφορα backscatter mails από το mailbox του. Μία από τις πλέον γνωστές επιθέσεις είναι ο spammer να χρησιμοποιεί διαφορετική mail address ή ακόμα και reply-address με αποτέλεσμα τα back scatters να μην έρχονται σε αυτόν αλλά να πηγαίνουν σε κάποιον άλλο.

Με βοήθησε αρκετά το συγκεκριμένο άρθρο:mbox_selective_deletion και πάνω σε αυτό βασίστηκα για να γράψω την δική μου παραλλαγή:

#!/usr/bin/perl -w
# Created by Ben Okopnik on Thu Jan 14 21:55:46 EST 2010
# Updated by Evaggelos Balaskas on Sun Jun 27 20:50:11 EEST 2010

use strict;
use Mail::MboxParser;

die $0 =~ /([^/]+)$/, " <mbox> n" unless @ARGV == 1;

my $mb = Mail::MboxParser->new($ARGV[0]);
my @subjects = ( 
    "Warning: could not send message for past 12 hours",
    "Returned mail: see transcript for details",
    "Delivery Status Notification (Failure)",
    "Undelivered Mail Returned to Sender"

while ( my $msg = $mb->next_message ) {
  my $s = $msg->header->{subject};
  $s ||= "empty_subject";

  my $flag = 0;
  foreach (@subjects) {
      if ( $s =~ $_ ) {
          $flag = 1;
  print $msg."n" unless $flag ;


Η χρήση του είναι η εξής:

./remove.pl mailbox > newmailbox

και φυσικά μπορείτε να προσθέσετε στην λίστα strong>@subjects</strong όσα περισσότερα subjects θέλετε.

Ο πλήρες κώδικας βρίσκεται εδώ: How to remove a specific mail from a mbox

ΥΓ: Θα χαρώ να λάβω παρατηρήσεις.