You can find the tool here: https://christopher-germann.de/intervalmailer.php
with timer: https://christopher-germann.de/intervalmailwithtimer.php
<!DOCTYPE html> <html> <head> <title>Interval Mailer</title> <style> /* CSS styles */ body { cursor: crosshair!important; } .form-container { background-color: #f2f2f2; border-radius: 5px; padding: 20px; margin: 20px; box-shadow: 0 0 10px rgba(0,0,0,0.3); } img { display: block; margin: 0 auto; max-width: 100%; height: auto; opacity: 1; -webkit-transition: all 1s ease-in-out; -moz-transition: all 1s ease-in-out; -ms-transition: all 1s ease-in-out; -o-transition: all 1s ease-in-out; transition: all 1s ease-in-out; } img:hover { -webkit-transition: all 1s ease-in-out; -moz-transition: all 1s ease-in-out; -ms-transition: all 1s ease-in-out; -o-transition: all 1s ease-in-out; transition: all 1s ease-in-out; filter: hue-rotate(0.542rad); } .typewriter { font-size:14px!important; font-family: "Comic Sans MS", "Comic Sans", bold!important; } * { font-family: "Comic Sans MS", "Comic Sans"!important; } body { background: linear-gradient(to right, #5B86E5, #36D1DC, #5B86E5); animation: background-animation 60s ease-in-out infinite alternate; } @keyframes background-animation { 0% { background-position: 0 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0 50%; } } /* Hover effect */ form:hover { box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); } input[type="text"]:hover, input[type="email"]:hover, textarea:hover { box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); } input[type="submit"]:hover { background-color: #a7e9af; color: #fff; } h1, h2, h3, h4, h5, h6 { font-family: 'Pacifico', cursive; text-align: center; color: #333; margin: 20px 0; } p { font-size: 16px; line-height: 1.5; margin: 10px 0; } a { color: #337ab7; text-decoration: none; } .container { max-width: 700px; margin: 0 auto; padding: 20px; background-color: #fff; box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); border-radius: 10px; position: relative; } /* Form styles */ .form-container { width: 100%; max-width: 500px; margin: 0 auto; position: relative; overflow: hidden; background-color: rgba(255, 255, 255, 0.9); border-radius: 10px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); } .form-container input, .form-container textarea, .form-container select { width: 100%; padding: 10px; margin: 10px 0; border: none; border-radius: 5px; font-size: 16px; box-sizing: border-box; } .form-container input[type="submit"] { background-color: #337ab7; color: #fff; border: none; border-radius: 5px; padding: 10px; font-size: 16px; cursor: pointer; box-shadow: 0 3px 0 #265580; transition: background-color 0.3s ease, box-shadow 0.3s ease; } .form-container input[type="submit"]:hover { background-color: #265580; box-shadow: 0 6px 0 #1b3d4e; } .form-container label { display: block; font-size: 18px; font-weight: bold; margin-top: 10px; } .form-container p { color: #333; font-size: 14px; } /* Glow effect */ .glow { text-shadow: 0 0 10px rgba(0, 0, 0, 0.5); animation: glow 1s ease-in-out infinite alternate; } @keyframes glow { from { text-shadow: 0 0 10px rgba(0, 0, 0, 0.5); } to { text-shadow: 0 0 20px rgba(0, 0, 0, 0.5); } } /* Shadow effect */ .shadow { box-shadow: 0 0 20px rgba(0, 0, 0, 0.5); transition: box-shadow 0.3s ease; } .shadow:hover { box-shadow: 0 0 40px rgba(0, 0, 0, 0.5); } body { background: linear-gradient(to right, #5B86E5, #36D1DC, #5B86E5); animation: background-animation 20s ease-in-out infinite alternate; background-size: 200% 200%; /* Added */ } @keyframes background-animation { 0% { background-position: 0 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0 50%; } .form { position: relative; perspective: 1000px; transform-style: preserve-3d; animation: form-entry 1s; } .form * { transform: translate3d(0, 50px, 0); opacity: 0; transition: transform 2.5s ease-out, opacity 2.5s ease-out; } .form *:last-child { transform: translate3d(0, 0, 0); opacity: 1; } @keyframes form-entry { from { transform: rotateX(-90deg); } to { transform: rotateX(0); } } .typewriter h1, .typewriter h2 { display: inline-block; overflow: hidden; vertical-align: middle; white-space: nowrap; font-size: 24px; font-weight: bold; color: #333; margin: 0; padding: 0; } </style> </head> <body> <?php ini_set('expose_php', 'off'); function generateEmail() { $names = array( '张伟', '王伟', '李伟', '王芳', '王秀英', '李秀英', '李娜', '张敏', '李静', '王丽', 'John', 'Mary', 'William', 'Emma', 'James', 'Olivia', 'Benjamin', 'Sophia', 'Lucas', 'Isabella', '陈秀华', '陈秀英', '陈丽华', '陈丽英', '陈华', '陈英', '张秀华', '张秀英', '张丽华', '张丽英', 'Emily', 'Michael', 'Sophie', 'David', 'Emma', 'Daniel', 'Chloe', 'Matthew', 'Grace', 'Lucy' ); $domains = array( 'gmail.com', 'yahoo.com', 'hotmail.com', 'outlook.com', '163.com', '126.com', 'qq.com', 'sina.com', 'sohu.com', 'aliyun.com', 'baidu.com', 'tencent.com', 'meituan.com', 'jd.com', 'xinhuanet.com', 'people.com.cn', 'china.com', 'yidianzixun.com', 'zhihu.com', 'douban.com' ); $random_name = $names[array_rand($names)]; $random_domain = $domains[array_rand($domains)]; return $random_name . '@' . $random_domain; } function generateMessageId() { // Generate a unique message id using a random timestamp and a random string $timestamp = rand(1620000000, time()); // set the minimum timestamp to May 3, 2021 (1620000000) $random_string = md5(uniqid(mt_rand(), true)); $domains = array(); for ($i = 0; $i < 20; $i++) { $random_domain = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 10) . '.cn'; array_push($domains, $random_domain); } $random_domain = $domains[array_rand($domains)]; return "<" . $timestamp . "." . $random_string . "@" . $random_domain . ">"; } if (isset($_POST['submit'])) { $to = $_POST['to']; $subject = $_POST['subject']; $message = $_POST['message']; $num_emails = $_POST['num_emails']; $interval = $_POST['interval']; $from = generateEmail(); for ($i = 1; $i <= $num_emails; $i++) { $message_id = generateMessageId(); $headers = 'From: ' . $from . "\r\n" . 'Reply-To: ' . $from . "\r\n" . 'Message-ID: ' . $message_id . "\r\n" . 'X-Mailer: PHP/' . phpversion(); // Adds the '-f' parameter to set the sender's email as the return path mail($to, $subject, $message, $headers, '-f' . $from); $last_letter = chr(rand(65, 90)); $last_number = rand(0, 9); $name = '#RO' . $last_letter . $last_number; echo '<div class="form-container"><img src="postman2.jpg" id="postman" alt="postman" style="width: 525px; height: 525px;">Email-bot ' . $name . ' says: <p>Ping - Email sent from ' . $from . ' to ' . $to . ' with Message-ID: ' . $message_id . '</p></div><br>'; sleep($interval); $from = generateEmail(); } } ?> <div class="background"> <div class="form-container"> <h1>Email-Bot #ROS6</h1> <img src="postman.jpg" alt="postman" style="width: 525px; height: 525px;"> <div class="typewriter"> Bleep: Hi there, I'm ROS6. Always at your service! <br>I can send a variable number of emails in prespecified temporal intervals to any email address. My algorithm will obfuscate the email header by using a randomization function in PHP. For instance, it will rotate and array of (English & Chinese) names and top-level domains and it will also generate random alphanumerical message IDs. This method pseudo-anonymizes the email dispatch. Keep in mind that I'm a prototype (v1.2). Please use my functions responsibly and for ethical and/or demo purposes only. I am not liable for your actions (neither is the creator). Spamming is scamming. You can download my source code <a href="https://christopher-germann.de/advancedmailer.txt" target="_blank">here...</a> </div> <form method="post" action=""> <label for="to">Send to:</label> <input type="email" name="to" id="to" required> <label for="subject">Subject:</label> <input type="text" name="subject" id="subject" required> <label for="message">Message:</label><br> <textarea name="message" id="message" required></textarea> <br> <label for="num_emails">Number of Emails:</label> <input type="number" name="num_emails" id="num_emails" required> <label for="interval">Interval (in seconds):</label> <input type="number" name="interval" id="interval" required> <input type="submit" name="submit" value="Send"> </form> </div> </div> </body> </html>