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

مشكلة فى كود بايثون

بدأه black-hunter في 4 فبراير 2009 · 9 رد · 1,420 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

كنت اكتب برنامج صغير بالبايثون و واجهتنى مشكلة هى الاتى:-

كنت اريد ان ارسل نص على بريد فكيف أقوم بعمل ذلك

وماذا سأستخدم من مكاتب لعمل ذلك

وشكراااااااااااا

#2

فى سنبيت جاهزة

http://kutuma.blogspot.com/2007/08/sending...ith-python.html

انصحك تقرا كتاب Foundations of Python Network Programming

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#3

أشكرك يا أخى كثيرا و أرجو ان تشرح لى هذا الكود بسرعة و اختصار

اعلماننى ثقلت عليك

#!/usr/bin/python

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email import Encoders
import os

gmail_user = "your_email@gmail.com"
gmail_pwd = "your_password"

def mail(to, subject, text, attach):
   msg = MIMEMultipart()

   msg['From'] = gmail_user
   msg['To'] = to
   msg['Subject'] = subject

   msg.attach(MIMEText(text))

   part = MIMEBase('application', 'octet-stream')
   part.set_payload(open(attach, 'rb').read())
   Encoders.encode_base64(part)
   part.add_header('Content-Disposition',
		   'attachment; filename="%s"' % os.path.basename(attach))
   msg.attach(part)

   mailServer = smtplib.SMTP("smtp.gmail.com", 587)
   mailServer.ehlo()
   mailServer.starttls()
   mailServer.ehlo()
   mailServer.login(gmail_user, gmail_pwd)
   mailServer.sendmail(gmail_user, to, msg.as_string())
   # Should be mailServer.quit(), but that crashes...
   mailServer.close()

mail("some.person@some.address.com",
   "Hello from python!",
   "This is a email sent with python",
   "my_picture.jpg")

وعندى سوال أخر هل هذه الجزئية موجودة فى كتابك؟؟؟؟؟؟؟؟؟؟؟؟؟؟

#4
   msg = MIMEMultipart()

   msg['From'] = gmail_user
   msg['To'] = to
   msg['Subject'] = subject

   msg.attach(MIMEText(text))

بتنشئ كائن الرسالة msg من الصف MIMEMultipart وبتضيف ليه headers زى From, To, Subject ونرفق المحتوى -فى صورة كائن من MIMEText- بالرسالة بإستخدام attach

   part = MIMEBase('application', 'octet-stream')
   part.set_payload(open(attach, 'rb').read())
   Encoders.encode_base64(part)
   part.add_header('Content-Disposition',
		   'attachment; filename="%s"' % os.path.basename(attach))
   msg.attach(part)

بنحدد ال MIME type للاتاتشمنت بإنه application/octet-stream -ممكن تبقة تستخدم guess_type فى الموديل mimetypes لتحديد ال type وال encoding -

بتحدد ال payload ونقوم بالتحويل ل base-64

تحديد الهيدر Content-Disposition ليتم توضيح ان الرسالة تحوى مرفقات

   mailServer = smtplib.SMTP("smtp.gmail.com", 587)
   mailServer.ehlo()
   mailServer.starttls()
   mailServer.ehlo()
   mailServer.login(gmail_user, gmail_pwd)
   mailServer.sendmail(gmail_user, to, msg.as_string())
   # Should be mailServer.quit(), but that crashes...
   mailServer.close()

1- بنتصل على خادم البريد

2- بتعرف نفسك بإستخدام EHLO

3- بتضع الإتصال على مود Transport Layer Security او TLS

4- بتبعت EHLO تانى

5- بتسجل الدخول username, password

6- بترسل الرسالة

ملحوظة اذا لم يكن السرفر يدعم EHLO فلن يدعم TLS

اقتباس
وعندى سوال أخر هل هذه الجزئية موجودة فى كتابك؟؟؟؟؟؟؟؟؟؟؟؟؟؟

لا.. بسبب ان فى حلول كتير زى استخدام فريمورك مثلا بتسهل كل المواضيع دى غير ان الموضوع نفسه متقدم نسبيا وحواليه مفاهيم كتير بالإضافة ان فى كتب مخصصة زى Foundations of Python Network Programming

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 6 فبراير 2009 في 00:48

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#5

شكرل لك سأقرأ الشرح و أجربة وان واجهتنى مشكله سأطرحها لك

وشكرا لك مرة أخرى

تم تعديل هذه المشاركة بواسطة black-hunter في 6 فبراير 2009 في 00:59

#6
اقتباس
لا.. بسبب ان فى حلول كتير زى استخدام فريمورك مثلا بتسهل كل المواضيع

كيف ذلك أرجوا ان تعطينى بعض المعلومات عن ذلك

  mailServer = smtplib.SMTP("smtp.gmail.com", 587)

هناك مشكلة هنا

فهو يتصل بخادم بريد gmail وانا أريد ان yahoo

فهل أكتب مكان gamil

yahoo??????????

#7

السلام عليكم و رحمة الله

على حد علمي لإستخدام ياهو تحتاج الإشتراك في خدمة plus (بفلوس $) و حيكون ال smtp بتاعك plus.smtp.mail.yahoo.com (Use SSL, port: 465, use authentication)

http://help.yahoo.com/l/us/yahoo/mail/orig...pop/pop-14.html

سبحانك اللهم و بحمدك ، أشهد أن لا إله إلا أنت ، أستغفرك ربي و أتوب إليك

مدونتي

http://www.facebook.com/brmjt

#8

و لكن الا يوجد ادنى طريقة لذلك

أن يقوم المستخدم بأدخال نص و ان يصل الى بأى طريقة

#9

قمت بالتغير وكل شى كما هو و لم يتغير شىء

ماذا أفعل؟؟؟؟؟؟؟؟؟؟؟

#10

السلام عليكم و رحمة الله

black-hunter الكود الذي وضعه أحمد و شرحه لك .. ما مشكلته؟

سيعمل معك و يؤدي المطلوب , فقط يجب أن تستخدم حساب جوجل لكي تستفيد من خادم البريد.

gmail_user = "your_email@gmail.com"
gmail_pwd = "your_password"

بدل مكان الأقواس اسم مستخدم و كلمة سر حقيقيين

سبحانك اللهم و بحمدك ، أشهد أن لا إله إلا أنت ، أستغفرك ربي و أتوب إليك

مدونتي

http://www.facebook.com/brmjt

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