🢂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