الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج سبام

بدأه Py4object في 21 أغسطس 2012 · 9 رد · 1,368 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

على مبدئ أحسن طريقة لتعلم البرمجة ممارستها عمليا

جربت اعمل برنامج فكرته انه يرسل كم كبير من الرسائل الى اميل مطلوب:

المشكلات التي صادفتني:

1-لم استطع تحزيم البرنامج بعد الانتهاء من العمل

2-لم استطع استخدام الياهو فقط استخدمت جيميل(في الارسال)

3- في الاستقبال hotmail يعتبر الايميل مباشرة على انه مزعج

4-سوء تصميم الواجهة ~~

1345527224723.png

هي واجهة البرنامج

مبدء العمل يقوم البرنامج عند العمل بفراءة الايملات وكلمات السر الموجودة في ملف نصي email.txt

ثم يستخدمهم لإرسال الرسائل

عبر حلقات تكرار

مقسم على 3 ملفات

الملف الاول يقرء الملف النصي


class read_email (object):
def __init__(self,surs):
self.surs=surs


def read_email(self):
d=open(self.surs,"r")
e=d.readline()
user=[]
pa=[]
x=0
self.c=0

while len(e)!=0:
if x==0:
user.append(e.strip('\n') )
x=1
elif x==1:

pa.append(e.strip('\n'))
x=0
self.user=user
self.pa=pa
e=d.readline()
self.c+=1

self.c=self.c/2

return self


d=read_email("email.txt")
d.read_email()
print(d.c)
 global user, pa

الملف الثاني يقوم بإرسال الرسائل


class sendspam(object):
def __init__(self,to,user,passd,massg,sub):
self.to=to
self.user=user
self.passd=passd
self.massg=massg
self.sub=sub

def sendmail(self):


import smtplib

headers = ["From: " + self.user,
"Subject: " + self.sub,
"To: " + self.to,
"MIME-Version: 1.0",
"Content-Type: text/html"]
headers = "\r\n".join(headers)
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(self.user,self.passd)
server.sendmail(self.user, self.to, headers + "\r\n\r\n" + self.massg)
server.quit()
# -*-  coding: utf-8 -*-

الملف الثالث هو الرئيسي ويقوم بتشغيل الواجهة الرئيسية


'''
Created on Aug 20, 2012

@author: kozo
'''

import pygtk
import reademail
from send import sendspam
pygtk.require("2.0")

import gtk
import gtk.glade
from reademail import read_email
import send

def delete_event(widget,data):
False
def destroy(widget,data=None):
gtk.main_quit()
def sent(widget,data=None):
global buttun,status,email_Target,contur,statustext
status.set_label("بدء")
c=contur.get_value()
i=0
to=email_Target.get_text()

emaillist=read_email("email.txt")
emaillist.read_email()
dd=emaillist.c
ggg=1
msg=""


while (dd>i):
k=0

while (k<c):
sen=sendspam(to,emaillist.user,emaillist.pa,"عم اتغالظ عليك ككككك","غلاظة للابد")
sen.sendmail()
k+=1


d=str(ggg)
msg+=("تم ارسال الرسالة رقم"+d+"الى الايميل "+to+"\n")
statustext.set_label(msg)
ggg+=1

i+=1


status.set_label("تم")








g=gtk.glade.XML("spam.glade")
w=g.get_widget("w1")
buttun=g.get_widget("start")
contur=g.get_widget("c")
email_Target=g.get_widget("e1")
status=g.get_widget("l")
statustext=g.get_widget("tst")
signals={"sent":sent}
g.signal_autoconnect(signals)
w.show()
gtk.main()





 # -*- coding: utf-8 -*-

اعلم ان البرنامج سيئ بكل شيئ وحتى بختيار اسماء المتحولات ولكنه يعمل ^_^ مع اول محاولة لي

1345527224752.png

رابط البرنامج

http://goo.gl/fUaLR

.Because it's FUN to be ALIVE

#2

عندي سؤال هو الياهو غبي لدرجة اني ارسل اكثر من 1500 رسالة بنفس العنوان ونفس المحتوى من دون ما يعرف انه مزعج :P

.Because it's FUN to be ALIVE

#3

ممكت تشرح ملف الاول

الاكواد الخاصة فيه لكوني مبتدا

اكون ممنون لك

#4

رائع جدا اخي العزيز ...دئما المحاولات والتعلم المستمر عن طريق بناء برامج رائعه هي الطريق الافضل لصقل المهارات والوصول الى الاحتراف ..

ارسال الرسائل امر جيد ....

لكن الاروع ان تعمل برنامج يعمل على فلترة هذا الرسائل الوصالة الى الايميل بحيث يفهم ان هذاه الرسائل هي سبام

ام لا ...اظنة رائع ..على الاقل يستحق التفكير فية ,,

وشكرا ..^_*

#5
احمد وسام كتب:

ممكت تشرح ملف الاول

الاكواد الخاصة فيه لكوني مبتدا

اكون ممنون لك

تكرم اخي بس ما بنصحك

طريقتي بكاتبة الكود من حيث التنظيم والافكار والقواعد غلط 100%

.Because it's FUN to be ALIVE

#6

نعم اعرف لكن فقط احب اعرف كيف كتبته يعني تشرحه فقط

#7
احمد وسام كتب:

نعم اعرف لكن فقط احب اعرف كيف كتبته يعني تشرحه فقط

 global user, pa

أعرف متحولين عامين سأستخدمهم ضمن الصف

class read_email (object):
    def __init__(self,surs):
        self.surs=surs

انشئ صف لقرائة الملف الذي يحوي الايملات

surs هو الملف النصي الذي سوف اقوم بقرائته

class read_email (object):
    def __init__(self,surs):
        self.surs=surs

هذا التابع هو الذي سوف اسخدمه بقرائة ملف الايملات

  d=open(self.surs,"r")

افتح الملف بصلاحية قرائة فقط

 e=d.readline()

اقراء سطر واخزنه في المتحول e

 user=[]
        pa=[]

مصفوفتين لتخزين الايميل وكلمة السر

 x=0
        self.c=0

متحولين ساتخدمهم كعداد

while len(e)!=0:
            if x==0:
                user.append(e.strip('\n') )
                x=1

طلما كان عدد المحارف في المتحول e لايساوي الصفر نفذ(لكي اتكد ان الملف ليس فارغ واني لم اصل لنهايته)

استخدم المتحول x لمعرفة انا في السطر الذي فيه الايميل او كلمة السر

اضيف ل مصفوفة االيميلات المتحول e مع حذف \n (تستخدم لبدء سطر جديد)

 elif x==1:

                pa.append(e.strip('\n'))
                x=0

اذا كنت في سطر كلمة السر سوف اضيفهم لمصفوفة كلمات السر مع حذف /n

 self.user=user
            self.pa=pa
            e=d.readline()
            self.c+=1

اسندهم للتابع مشان احسن اعملهم return

 self.c=self.c/2

        return self

اقسم c على 2 لكي اعرف كم ايميل لدي c هو عدد الاسطر (سطر الايميل ثم يليه كلمة السر)

اقوم بعمل return للمتحول self

  d=read_email("email.txt")
d.read_email()
print(d.c)

مجرد تجربة للكلاس

اتمنى بشدة ان اكون قد افدتك اخي (ولو اني بشك لردء الطريقة التي اقوم بكتابة بها الكود) اذا كنت مبتدئ مثلي فانا انصحك بكتاب الفاضل احمد يوسف فهو مفيد جدا جدا !

\

.Because it's FUN to be ALIVE

#8

والله اتمنى ان ترسلياه حبيبي

لان موقعه اانغلق

ا

وانا اتمنى لان والله تعبت ولكن الفضل من الله داتعلم شوي شوي

وداعاني كثيرا من المتغيرات مثل

s = []ب

لا اعرف كيف استخدمها هكذا لذلك قلت لك اشرح الكود احتجت فقط من الكود هذه المتغيرات 2

فقط

اشكرك حبيبي الغالي

وفقك الله وفتح لك ابواب التوفيق

#10

اشكرك صديقي

وفقك الله افدتني كثيرا الحمدلله

مواضيع مشابهة