base on Fast, multithreading, efficient and easy-to-use mail bombing/spamming tool. Sending mails via mailman services hosted by different providers. # Fast Mail Bomber via Mailman ![](https://img.shields.io/badge/php-%3E%3D7.2-blue) ![](https://img.shields.io/github/license/juzeon/fast-mail-bomber) ![](https://img.shields.io/github/repo-size/juzeon/fast-mail-bomber?color=blueviolet) ![](https://img.shields.io/github/stars/juzeon/fast-mail-bomber?color=lightgrey) English | [简体中文](README_zh-CN.md) Fast Mail Bomber via Mailman (also FMB for short) is an email bombing/spamming tool written in php. FMB bombs the target's mailbox by sending bulk emails via mailman services hosted by different providers. ![](fmb1.gif) ![](fmb2.gif) **DISCLAIMER: THIS PROJECT IS FOR ACADEMIC PURPOSES ONLY. THE DEVELOPERS TAKE NO RESPONSIBILITY FOR ILLEGAL USAGE AND/OR POTENTIAL HARMS.** ## Requirements - PHP >= 7.2 - cURL extension support ## Features - Automatically get mailman servers (providers) from Shodan or import from local files. - Multithreading bombing process. - 900+ built-in providers & 50,000+ built-in nodes list, providing efficiency. - Reliable exception handling mechanism. ## Installation ### 1. Clone this project You can use git to clone this project or download .zip file from GitHub. ```bash git clone https://github.com/juzeon/fast-mail-bomber.git cd fast-mail-bomber/ ``` ### 2. Configure Copy `config.example.php` to `config.php` and edit it according to the annotations in the file to suit your needs. ## Usage **Concept explanations:** Provider: A mailman server, which usually contains a `listinfo` page listing all subscription nodes. eg. `http://lists.centos.org/mailman/listinfo` Node: A subscription node on a mailman server, which can be used to send subscription confirmation emails to a target. eg. `http://lists.centos.org/mailman/subscribe/centos` ### 1. (Optional) Updating Providers from Shodan & ZoomEye or a local file ```bash # Updating providers from Shodan & ZoomEye. Set a Shodan and/or ZoomEye api key in config.php first. php index.php update-providers # Importing providers from a local file. There's no restriction on file format/pattern since FMB uses RegExp to match provider urls. php index.php import-providers <filepath> ``` Duplicate providers will be automatically removed. ### 2. (Recommand) Updating Nodes from the existing provider list ```bash # Optional. Due to various factors of different network environments, the built-in nodes may not work in your environment. So it's a good idea to delete these nodes (but not data/providers.json) and execute update-nodes on your own. Depending on the speed of your network and the size of our providers list, it may take 10~30 minutes. rm -rf data/nodes.json data/dead_providers.json # Getting all subscription nodes that can be used for bombing from providers. php index.php update-nodes # Optional. Refine only one node from each provider, which will be extracted into a different file. php index.php refine-nodes ``` When getting nodes, unavailable providers previously added will be automatically added to a dead list and will not be used. Duplicate nodes will be automatically removed. You can also use built-in providers and nodes and skip this step. ### 3. Starting to bomb ```bash php index.php start-bombing [refined] <email address> # eg. Use all nodes to bomb an email: php index.php start-bombing [email protected] # eg. Use refined nodes to bomb an email: php index.php start-bombing refined [email protected] ``` Successful and failed requests will be printed via console. Press CTRL+C to cease the process. **DISCLAIMER: THIS PROJECT IS FOR ACADEMIC PURPOSES ONLY. THE DEVELOPERS TAKE NO RESPONSIBILITY FOR ILLEGAL USAGE AND/OR POTENTIAL HARMS.** ## Testing results I tested FMB's performance when bombing different mail providers once. Here's the results: Proton Mail: 99.4% into Inbox, 0.6% into Spambox. Gmail: 83.2% into Inbox, 16.8% into Spambox. Outlook Mail: 77.1% into Inbox, 22.9% into Spambox. 163 Mail: 100% into Inbox, 0% into Spambox. QQ Mail: 71% into Inbox, 29% into Spambox. Zoho Mail: 0% into Inbox, 15.9% into Newsletter, 84.1% into Spambox. Yandex Mail: 0% into Inbox, 100% into Spambox. ## How to prevent being bombed Because of the mail template used in mailman's default settings, simply add the following text as one of your mailbox's filter rule: ``` Mailing list subscription confirmation notice for mailing list ``` ## License GPL v2.0", Assign "at most 3 tags" to the expected json: {"id":"725","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"