├── README.md ├── SpamMail.py ├── check_mails.txt └── valid_mails.txt /README.md: -------------------------------------------------------------------------------- 1 |

SpamMail 💀

2 |
Build
3 |

4 | Follow on Social Media Platforms 5 |

6 |

7 | 8 |

9 | 10 | # ScreenShots👨🏼‍💻 11 | ![Screenshot from 2020-11-18 07-46-49](https://user-images.githubusercontent.com/57313495/99399751-1692d500-290c-11eb-9c19-cdcc493cbe8e.png) 12 | 13 | 14 | 15 | 16 | # INSTALLATION [ TERMUX APP --ANDROID ]🔥 17 | * git clone https://github.com/predator0x300/SpamMail 18 | * python3 SpamMail.py 19 | 20 | # INSTALLATION [ KALI ]🔥🔥🔥 21 | * git clone https://github.com/predator0x300/SpamMail 22 | * python3 SpamMail.py 23 | 24 | # Usage 🙋🏻‍♀️ 25 | * python3 SpamMail.py 26 | * Paste the mails which you wanna check in: check_mails.txt 27 | * Get Valid Mails in: valid_mails.txt 28 | 29 | # TESTED ON FOLLOWING:👌🏻- 30 | * Kali Linux - 2020.1a (version)👍🏻 31 | * Parrot OS - Rolling Edition (version) 32 | * Ubuntu 33 | * Arch Linux 34 | # LANGUAGE 35 | * Python 36 | 37 | 38 | # Contact For Contribute & Issues 📲 39 | 40 | EMAIL FOR ISSUES AND CONTRIBUTE : predator0x300.com 41 | 42 | # DISCLAIMER 💡💡💡 43 | TO BE USED FOR EDUCATIONAL PURPOSES ONLY 44 | 45 | The use of the "SpamMail" is COMPLETE RESPONSIBILITY of the END-USER. Developers assume NO liability and are NOT responsible for any misuse or damage caused by this program. 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /SpamMail.py: -------------------------------------------------------------------------------- 1 | '''from verify_email import verify_email 2 | hack = verify_email('din_rockin@gmail.com') 3 | print(hack)''' 4 | #-------------------------------------------------------------------- 5 | import re 6 | import smtplib 7 | import dns.resolver 8 | import time 9 | import sys 10 | from time import sleep 11 | import threading 12 | 13 | def banner(): 14 | print("\n") 15 | print('''\033[31m ██████ ██▓███ ▄▄▄ ███▄ ▄███▓ ███▄ ▄███▓ ▄▄▄ ██▓ ██▓ 16 | ▒██ ▒ ▓██░ ██▒▒████▄ ▓██▒▀█▀ ██▒▓██▒▀█▀ ██▒▒████▄ ▓██▒▓██▒ 17 | ░ ▓██▄ ▓██░ ██▓▒▒██ ▀█▄ ▓██ ▓██░▓██ ▓██░▒██ ▀█▄ ▒██▒▒██░ 18 | ▒ ██▒▒██▄█▓▒ ▒░██▄▄▄▄██ ▒██ ▒██ ▒██ ▒██ ░██▄▄▄▄██ ░██░▒██░ 19 | ▒██████▒▒▒██▒ ░ ░ ▓█ ▓██▒▒██▒ ░██▒▒██▒ ░██▒ ▓█ ▓██▒░██░░██████▒ 20 | ▒ ▒▓▒ ▒ ░▒▓▒░ ░ ░ ▒▒ ▓▒█░░ ▒░ ░ ░░ ▒░ ░ ░ ▒▒ ▓▒█░░▓ ░ ▒░▓ ░ 21 | ░ ░▒ ░ ░░▒ ░ ▒ ▒▒ ░░ ░ ░░ ░ ░ ▒ ▒▒ ░ ▒ ░░ ░ ▒ ░ 22 | ░ ░ ░ ░░ ░ ▒ ░ ░ ░ ░ ░ ▒ ▒ ░ ░ ░ 23 | ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ 24 | \033[00m''') 25 | 26 | def slowprint(s): 27 | for c in s + '\n': 28 | sys.stdout.write(c) 29 | sys.stdout.flush() 30 | sleep(3. / 100) 31 | threading.Thread() 32 | 33 | 34 | # Address used for SMTP MAIL FROM command 35 | fromAddress = 'corn@bt.com' 36 | 37 | # Simple Regex for syntax checking 38 | regex = '^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$' 39 | 40 | def write(addressToVerify): 41 | print('\033[31m{+} Email: \033[00m'+addressToVerify+'\033[31m is valid! :)\033[00m') 42 | file1 = open('valid_mails.txt', 'a') 43 | file1.write(addressToVerify) 44 | file1.write("\n") 45 | file1.close() 46 | 47 | 48 | def check(addressToVerify): 49 | # Syntax check 50 | match = re.match(regex, addressToVerify) 51 | if match == None: 52 | print('\033[33mExiting.... ;)\033[00m') 53 | exit() 54 | 55 | # Get domain for DNS lookup 56 | splitAddress = addressToVerify.split('@') 57 | domain = str(splitAddress[1]) 58 | print('\033[31m{+} Domain_Server:\033[00m', domain) 59 | 60 | # MX record lookup 61 | records = dns.resolver.resolve(domain, 'MX') 62 | mxRecord = records[0].exchange 63 | mxRecord = str(mxRecord) 64 | 65 | 66 | # SMTP lib setup (use debug level for full output) 67 | server = smtplib.SMTP() 68 | server.set_debuglevel(0) 69 | 70 | # SMTP Conversation 71 | server.connect(mxRecord) 72 | server.helo(server.local_hostname) ### server.local_hostname(Get local server hostname) 73 | server.mail(fromAddress) 74 | code, message = server.rcpt(str(addressToVerify)) 75 | server.quit() 76 | 77 | # Assume SMTP response 250 is success 78 | if code == 250: 79 | write(addressToVerify) 80 | else: 81 | print('\033[31m{+} Email: '+addressToVerify+' is NOT valid! :(\033[00m') 82 | 83 | # Email address to verify 84 | banner() 85 | slowprint(" \033[01m\033[33m >>>- cOdEd By: Predator0x300 -<<<\033[00m\033[00m") 86 | slowprint(" \033[04m\033[33m >>>--- predator0x300@gmail.com --->>> \033[00m\033[00m") 87 | slowprint(" \033[01m\033[33m >>>--- GitHub:\033[31m https://github.com/Predator0x300 \033[00m\033[33m ---<<<\033[00m\033[00m") 88 | print("\n") 89 | file1 = open('check_mails.txt', 'r') 90 | # Using for loop 91 | #print("Using for loop") 92 | count = 0 93 | num=0 94 | for line in file1: 95 | 96 | count += 1 97 | inputAddress = ("{}".format(line.strip())) 98 | print(f"\033[01m\033[33m[{num}] Checking: \033[00m\033[00m"+inputAddress) 99 | #inputAddress = input('Please enter the emailAddress to verify:') 100 | addressToVerify = str(inputAddress) 101 | check(addressToVerify) 102 | print("------------------------") 103 | num +=1 104 | # Closing files 105 | file1.close() 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | -------------------------------------------------------------------------------- /check_mails.txt: -------------------------------------------------------------------------------- 1 | predator0x300@gmail.com 2 | dsfjsjfs@gmail.com 3 | maxmillfd@yahoo.com 4 | 5 | -------------------------------------------------------------------------------- /valid_mails.txt: -------------------------------------------------------------------------------- 1 | predator0x300@gmail.com 2 | predator0x300@gmail.com 3 | predator0x300@gmail.com 4 | predator0x300@gmail.com 5 | maxmillfd@yahoo.com 6 | predator0x300@gmail.com 7 | maxmillfd@yahoo.com 8 | --------------------------------------------------------------------------------