🢂Generowanie i wysyłanie dowolnej ilości maili ✉️ z losowymi danymi

Skrypt PHP do testowania systemów pocztowych 😈. Pozwala na generowanie i wysyłanie masowo maili z losowymi nagłówkami i treścią maila.

Co robi ten kod?

  • Funkcja wyslijEmail przyjmuje dwa parametry: adres e-mail, na który mają być wysyłane e-maile, oraz liczbę e-maili, które mają zostać wysłane.
  • Funkcja generuje losową datę i adres IP dla każdego e-maila. Następnie ustawia różne nagłówki dla e-maila, takie jak "From", "Reply-To" i inne.
  • Następnie generuje losową treść i temat wiadomości.
  • Na końcu funkcja używa funkcji mail do wysłania e-maila.
  • Na końcu skryptu wywoływana jest funkcja wyslijEmail z adresem e-mail i liczbą 500.

Uwaga: Dość łatwo dowiedzieć się kto wysłał te 500 maili :)

Kod pliku "wyslij_email.php"

<?php
function wyslijEmail($adres, $liczba) {
    // Generowanie losowej daty dla każdego maila i adresu IP
    $randomDate = date(DATE_RFC2822, rand(strtotime('2016-01-01'), time()));
    $randomIP = generujLosowyIP();
    $languages = ['en-US', 'en-GB', 'es-ES', 'fr-FR', 'de-DE'];

    for ($i = 1; $i <= $liczba; $i++) {
        // Ustawienie adresu nadawcy
        $naglowki = "From: " . $adres . "\r\n";
        // Adres do odpowiedzi
        $naglowki .= "Reply-To: ".$adres."\r\n";
        // Ścieżka zwrotu w przypadku błędów
        $naglowki .= "Return-Path: ".$adres."\r\n";
        // Wersja MIME wiadomości'rpullen@divisionofecw-one.online'
        $naglowki .= "MIME-Version: 1.0\r\n";
        // Określenie typu zawartości i kodowania znaków
        $naglowki .= "Content-Type: text/html; charset=UTF-8\r\n";
        // Dodanie losowej daty wysłania wiadomości
        $naglowki .= "Date: " . $randomDate . "\r\n";
        // Dodanie pierwszego losowego adresu IP jako miejsce pochodzenia
        $naglowki .= "X-Originating-IP: " . $randomIP . "\r\n";
        // Unikalny identyfikator wiadomości
        $naglowki .= "Message-ID: <" . md5(uniqid(rand(), true)) . "@" . losujZnaki(4). ".com>\r\n";
        // Informacje o przeglądarce użytkownika
        $naglowki .= "User-Agent: Mozilla/" . rand(3, 5) . ".0 (compatible; MSIE " . rand(6, 11) . ".0; Windows NT; Trident/" . rand(3, 5) . ".0)\r\n";
        // Dodatkowe losowe dane
        $naglowki .= "X-Extra-Data: " . losujZnaki(20) . "\r\n"; 
        // Priorytet wiadomości
        $naglowki .= "X-Priority: " . rand(1, 3) . "\r\n";
        // Informacje o programie pocztowym
        $naglowki .= "X-Mailer: Outlook/" . losujZnaki(4) . "\r\n";
        // Informacje o odbiorze wiadomości
        $naglowki .= "Received: from " . losujZnaki(10) . " by " . losujZnaki(10) . " with HTTP; " . $randomDate . "\r\n";
        // Priorytet poczty w systemie Microsoft
        $naglowki .= "X-MSMail-Priority: " . (rand(0, 1) ? "High" : "Normal") . "\r\n";
        // Ustawienia języka zawartości wiadomości
        $naglowki .= "Content-Language: " . $languages[array_rand($languages)] . "\r\n";
        // Flaga oznaczająca wiadomość jako spam
        $naglowki .= "X-Spam-Flag: NO\r\n";
        // Status spamu z ewentualnym wynikiem
        $naglowki .= "X-Spam-Status: No, score=" . rand(-5, 0)) . "\r\n";
        // Informacja o nadawcy (powtórzenie)
        $naglowki .= "X-Sender: " . $adres."\r\n";
        // Informacja o odbiorcy (powtórzenie)
        $naglowki .= "X-Receiver: " . $adres . "\r\n";

        // Losowanie treści i tematu wiadomości
        $temat = losujZnaki(16);
        $wiadomosc = "<html><body><p>Dear " . losujZnaki(5) . ",</p><p>" . losujZnaki(15) . " " . losujZnaki(200) . "</p><p>Best regards,<br>Your " . losujZnaki(5) . "</p></body></html>";

        // Wysyłanie maila
        mail($adres, $temat, $wiadomosc, $naglowki);
        echo "Wysłano wiadomość nr ".$i." o temacie: ".$temat."\n";
    }
}

function losujZnaki($dlugosc) {
        $znaki = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $wynik = '';
        for ($i = 0; $i < $dlugosc; $i++) {
            $wynik .= $znaki[rand(0, strlen($znaki) - 1)];
        }
        return $wynik;
}
function generujLosowyIP() {
    return rand(1, 255) . "." . rand(1, 255) . "." . rand(1, 255) . "." . rand(1, 255);
}
// Wywołanie funkcji
wyslijEmail('rpullen@divisionofecw-one.online', 500);
?>

Jak uruchomić?

Aby uruchomić funkcję wyslijEmail napisaną w PHP w konsoli, musisz skorzystać z interpretera PHP. Najpierw upewnij się, że PHP jest zainstalowane na Twoim systemie. Możesz to zrobić, wpisując w konsoli:

php -v

Jeśli PHP jest zainstalowane, zobaczysz informacje o wersji. Jeśli nie, musisz zainstalować PHP.

  • Krok 1: Przygotowanie skryptu PHP Skopiuj kod funkcji wyslijEmail do pliku o nazwie, na przykład wyslij_email.php. Otwórz edytor tekstu i wklej cały skrypt PHP. Zapisz plik.
  • Krok 2: Uruchomienie skryptu z konsoli Otwórz terminal (na systemach Linux/Mac) lub wiersz poleceń / PowerShell (na Windows) i przejdź do katalogu, w którym znajduje się plik wyslij_email.php. Możesz to zrobić za pomocą polecenia cd (change directory), na przykład:
cd ścieżka/do/katalogu

Następnie, aby uruchomić skrypt, użyj poniższego polecenia:

php wyslij_email.php

Możesz też skopiować plik na dowolny serwer WWW i wywołać go zdalnie:

wget http://TwojaDomena.com/wyslij_email.php

Efekt 😈

W konsoli dostaniesz wynik działania skryptu

Wysłano 1 o temacie: 3g8N1sdb2JvZfyPu
Wysłano 2 o temacie: t0a0xBgV07dXdjPL
Wysłano 3 o temacie: bi19enq6s20WWeWH
...
Wysłano 500 o temacie: sPV08L6T6EOVJWBz