· 4 min read
Python orqali bepul email рассылка yubora olamizmi ?
Contents
Qanday qilib 3200 ta korxonaga bloklanmasdan ommaviy xat yuborish tizimini yasadik? (Python)
Tasavvur qiling: Siz o'z bizesingizni rivojlantirmoqchisiz. O'z xizmatlaringizni boshqa kanallar orqali reklama qilishingiz kerak. Aytaylik qolingingizda Golden Pages olgan db , kompaniyangiz uchun bo'lajak mijozlaringizni minglab ro'yxati bor.
Bu ma'lumotlarni qanday ishlatasiz, birma bir qo'ng'iroq qilish yoki xabar yuborib chiqish sizni yillab vaqtingizni olishi mumkin. Bitta tugmani bosish orqali vazifani birdaniga bajarishingiz mumkin va bu mutlaqo bepul desam bu sizga qiziq eshitiladimi ?

Lekin buni qanday qilasiz? Keling jarayonni qanday bo'lishini gapirib beraman.
-
Agar Corporative mail'ga kirib, 3000 ta emailni birdaniga kompaniyalarga yuborsangiz — tabriklayman, siz xalqaro spammerlar ro'yxatiga tushdingiz va pochtangiz uzoq vaqtga bloklandi (Corporative pochta orqali xabarlar yuborish soni, kunlik limit 350-500 oralig'ida).
-
Agar kuniga 100 tadan erinmay qo'lda yuborib chiqsangiz — bunga roppa-rosa 1 oy vaqtingiz olib qo'yadi.
Sizga kompaniyangiz tomonidan qiziqarli vazifa berildi. E-mail xabarlarni bo'lajak mijozlarga yuborib chiqishingiz kerak. Xo'sh nima qilasiz ? Birinchi navbatda bo'lajak mijozlarni ro'yxatini yaratishingiz kerak. (Tez usul Golden page yoki opensoure manbalardan ma'lumotlarni API orqali olish yoki Scrap qilish) Python'da juda "aqlli" va xavfsiz pochta jo'natuvchi dasturni yozishingiz mumkin.
Ushbu postda dasturlashni unchalik tushunmaydiganlar uchun ham bu jarayon qanday ishlashini oddiy tilda tushuntirib berishga harakat qilaman.
Dastur skripti qanday ishlaydi?
Yuqorida aytganimdek mizojlarimiz kimligini segmentation qilgach ularni bazalarini opensource orqali ko'chirib olish kerak. (Scrap mehthod haqida keyingi postlarimda jarayonni qanday bo'lishi haqida aytib beraman)
-
Pauza bilan yuborish: Skript xatlarni bittada yubobmang. Har bir yuboriluvchi xat orasida 45 soniya tanaffus qilish kerak. Go'yoki xatni haqiqiy odam yozib jo'natayotgandek.
-
Kunlik limit: Kuniga faqat 400 ta xat yuborasiz va dastur o'zini avtomatik to'xtatadi. Bu qoidalar'ning 500 talik limitidan xavfsiz masofada saqlash uchun kerak.
-
Shaxsiylashtirish: Hammaga bir xil zerikarli xat bormaydi. Dastur Excel (CSV) fayldan korxona nomini o'qiydi va chiroyli HTML dizayndagi xatning boshiga "Hurmatli [Korxona Nomi] jamoasi" deb avtomatik qo'yib ketadi.
Asosiy mantiq: "Aqlli xotira"
Skript yozishdagi eng katta xavf nima bilasizmi? Tasavvur qiling, botingiz 150 ta xat yubordi va chiroq o'chib qoldi yoki internet uzildi. Qayta ishga tushirsangiz, u yana 1-xatdan boshlaydimi? Unda oldingi 150 kishiga ikkinchi marta xat boradi-ku. Bu mijozlarning g'ashiga tegishi mumkin va tabiyki Companiyangiz xabarlarni Spamga tushadi. Marhamat qilib SPAMga boring.
Shuning uchun botga xotira qo'shish kerak bo'ladi. U har bir jo'natilgan emailni alohida yuborilganlar.txt degan oddiy faylga yozib boradi. Jarayon izdan chiqganida soniyaning milli-soniyasida o'sha fayl ichidagi log ni ko'rib chiqadi va yuborilgan mail pochtalarni skip qilib yuboradi.
# Oldin yuborilgan emaillarni txt fayldan o'qib chiqadi
oldin_yuborilganlar = yuborilganlarni_olish()
# (Excel) har bir qatorni aylanib chiqadi
for row in reader:
kompaniya_nomi = row['Kompaniya nomi']
qabul_qiluvchi = row['Email']
# Agar bu emailga oldin xat borgan bo'lsa, o'tkazib yuboramiz (skip)
if qabul_qiluvchi in oldin_yuborilganlar:
continue # Bunga tegmaymiz, keyingi qatorga o't!
# 2. Xatni tayyorlaymiz (Kompaniya nomini joylaymiz)
shaxsiylashtirilgan_html = BODY_HTML.format(kompaniya_nomi=kompaniya_nomi)
# 3. Xatni yuborish
try:
server.send_message(msg)
# Muvaffaqiyatli yuborsa, txt faylga yozib qo'yamiz
yuborilganni_saqlash(qabul_qiluvchi)
oldin_yuborilganlar.add(qabul_qiluvchi) # Bot xotirasini ham yangilaymiz
print(f"Muvaffaqiyatli: {kompaniya_nomi} ga xat ketdi.")
# 45 soniya limitation qo'yilgan buni qisqartirish ham mumkin lekin blokga tushish havfi bor
time.sleep(45)
except Exception as e:
print(f"Xatolik: {qabul_qiluvchi} ga xat bormadi.")
Koddagi mantiq oddiy: Faylni ochadi, emailni ko'radi, (txt faylda) bormi tekshiradi. Agar bo'lsa, indamasdan keyingisiga o'tadi (continue). Agar yo'q bo'lsa, xat yuboradi va uni darhol ro'yxatga qo'shib qo'yadi. Shu tariqa, dastur ming marta o'chib yonsa ham, bitta odamga ikkita xat ketmaydi.
Natija qanday ko'rinadi? (Output)
Dastur jarayonni shunchaki qora ekranda emas, maxsus .log faylda tarix sifatida saqlanadigan qildim. Dasturni ishga tushirganingizda, u qanday qilib arilar kabi mehnat qilayotganini jonli kuzatib turishingiz mumkin.
2026-03-20 22:30:05 - Dastur ishga tushdi. Oldin yuborilgan mail'lar soni: 400
2026-03-20 22:30:05 - Gmail serveriga ulanmoqda...
2026-03-20 22:30:08 - Pochtaga muvaffaqiyatli kirildi. Xatlarni yuborish boshlandi!
----------------------------------------
2026-03-20 22:30:10 - [401] Muvaffaqiyatli: "Google LLC (info@google.com)
2026-03-20 22:30:56 - [402] Muvaffaqiyatli: "Yandex" LLC (info@yandex.uz)
2026-03-20 22:31:42 - [403] Muvaffaqiyatli: "BUILD MASTER" LLC (example@.uz)
...
2026-03-20 23:15:00 - ❌ Xatolik yuz berdi (notogri_email@.ru): Noto'g'ri format
...
2026-03-21 02:45:10 - ✅ Kunlik limitga (400 ta) yetildi. Dastur o'z ishini yakunladi.
----------------------------------------
Jarayon tugadi. Bugun yuborilgan jami xatlar soni: 400
Ko'rib turganingizdek, tizim juda tartibli ishlaydi. Qaysi soat, qaysi daqiqada kimga xat ketganini, qaysi email noto'g'riligi sababli xatolik berganini log ko'rinishida yozib boradi. 400 ta limitga yetgach, jimgina ishlashni to'xtatadi.
Ertasi kuni uni yana bitta bosish bilan ishga tushiramiz va u roppa-rosa to'xtagan joyidan o'z ishini davom ettirib ketaveradi. Hech qanday bosh og'rig'isiz!
Mijozlaringiz pochtasiga xabarlar qanday ko'rinishda boradi ?

Har bir yuborilgan mail xabarlar html design ko'rinishida yetib boradi va siz ularni ham analysis qilishingiz va A/B testing o'tkazishingiz mumkin.
Shu tariqa siz ham, marketing byudjetini tejab, butun boshli CRM va pochta jo'natish servislari qiladigan ishni kichik bir Python skripti yordamida o'zingiz uchun bepul va ishonchli tizimga yasashingiz mumkin. Agar sizda ham shunday muammolarg paydo bo'lsa, endi uni qanday hal qilishni bilasiz!
O'xshash xizmatlar bormi ?
Albatta o'xshash xizmatlar mavjud. Brevo, SendPulus va boshqa saytlar pullik o'z xizmatlarini taklif qilib kelishadi, bu sizga oyiga taminan $200 tushadi (Tayyor ma'lumotlar bazasi bilan hisoblaganda).


