-
پنجشنبه, ۲ ارديبهشت ۱۴۰۰، ۰۷:۴۴ ب.ظ
-
۸۸۲
سلام دوستان :)
امروز یه پست آموزشی فوق العاده باحال داریم . قراره اسکریپتی بنویسیم که یه لیست آدرس Gmail از ما میگیره و به ما میگه کدومش معتبره و کدومش معتبر نیست .
خب توی این آموزش قراره که بطور مستقیم به سرور smtp گوگل متصل بشیم و ایمیل رو تایید کنیم
خب وارد cmd بشین و کد زیر رو بزنین:
nslookup -q=mx gmail.com
خب خروجی که بهتون میده یک سری رکورد های mx هستش اما ما قراره از کدوم استفاده کنیم ؟
خود گوگل اولین اولویتشاولین رکورد هستش (اون رکوردی که MX preference = 5 داره)
پس ما هم از همون استفاده میکنیم :)
کاری که ما میخوایم بکنیم اینه که به این سرور متصل بشیم فایلی که کاربر بهمون گفته و حاوی آدرس های ایمیل هست رو باز کنیم و ایمیل های داخل فایل رو تایید کنیم
خب حالا که این ها رو میدونیم میتونیم بریم سراغ برنامه
توی برنامه مون از دو تا کتابخونه استفاده میکنیم یکی smtplib که بطور پیشفرض روی پایتون نصب هست یکی هم colorama که برای تغییر رنگ متن و خوشگل کاری هست :))
سورس:
import smtplib
import colorama
colorama.init()
def checker(rcpt):
gmail = smtplib.SMTP("gmail-smtp-in.l.google.com", 25)
try:
gmail.sendmail("farbodmoradiblog@gmail.com", rcpt, "nothing")
except smtplib.SMTPRecipientsRefused:
return False
except smtplib.SMTPDataError:
return True
gmaillist = input("Gmail List File : ")
gmaillist = open(gmaillist)
for gmail in gmaillist:
gmail = gmail.strip("\n")
if checker(gmail):
print(colorama.Fore.GREEN + "[+] {} is Correct !".format(gmail))
else:
print(colorama.Fore.RED + "[-] {} is InCorrect !".format(gmail))
input()
خب اول ماژول هامون رو ایمپورت کردیم بعدش یک تابع به نام checker تعریف کردیم که یک ورودی میگیره
داخل تابع checker یک شی برای اتصال به smtp سرور درست کردیم و از همون آدرسی که بالا گفتم استفاده کردیم
خب همونطور که میدونید try و except برای مدیریت خطا ها هست بنابراین با داخل try تلاش میکنیم که به ایمیل farbodmoradiblog@gmail.com از طرف ایمیلی که به ورودی تابع دادیم میفرسته
اگر سرور DataError داد مقدار True رو بر میگردونه یعنی آدرس ایمیلی که بهش دادیم درست بوده
اگر سرور RecipientsRefused داد یعنی ایمیلی با اون آدرس ساخته نشده و ایمیل درست نیست و مقدار False رو بر میگردونه(توجه کنید که این اسکریپت فقط برای ایمیل های gmail کار میکنه)
بعد فایلی که کاربر گفته رو باز میکنیم و دونه دونه ایمیل های داخلش رو چک میکنیم اگر ایمیل درست بود با رنگ سبز ایمیل رو چاپ میکنیم و میگیم که ایمیل درست بوده و اگر ایمیل نادرست بود با رنگ قرمز ایمیل رو چاپ میکنه و میگه که ایمیل درست نبوده
امیدوارم براتون مفید بوده باشه D: