النتائج 1 إلى 14 من 14

الموضوع: (في جعبتي 3) تعلم كيف تصنع نموذج بريدي مع مرفقات ......

  1. #1
    خبير سيرفرات لينكس
    تاريخ التسجيل
    Mar 1999
    المشاركات
    4,917

    (في جعبتي 3) تعلم كيف تصنع نموذج بريدي مع مرفقات ......



    (سلسلة في جعبتي ) -3-
    كيف أرسل بريد مع مرفقات ؟

    شكرا للجميع الذين ساهمو في توصيل فكرة إرسال بريد مع مرفقات .
    وسوف اقوم أنا بدوري بشرحها لكم بالتفصيل كي تعم الفائدة على الجميع
    وأنا لا تهمني الردود بقدر ما تهمني القرائات والفائدة التي يمكن أن تجنوها من خلال هذا المقال الصغير:

    اولا ما هي المرفقات ولماذا نقوم بتشفير المرفقات :
    في بداية عصر الإنترنت كان البريد فقط مخصص لإرسال النصوص ال TEXT
    فقط لا غير
    ودعوني أفاجئكم :
    هو للأن لم تتواجد طريقة إرسال بريد عبر الملقمات المشهورة
    POP3 و SMTP و ال IMAP
    كي نستطيع ان نرسلة على هيئة ملف تنفيذي
    وكان الحل على يد مطوري يونكس ...
    وقد قيلت فكرة كانت القفزة النوعية في الثمانينات
    هي تحويل الملفات الى صيغة نصية وهذا ممكن
    عن طريق دالة معروفة منذ القدم وتدعى base64
    وهذة الدالة لها شكلان:
    الاول :
    string base64_encode (string data)

    هنا تقوم بتشفير اي String data تم إدخالة لها.
    أي لو فرضنا أني كتبت كمثال :
    beshoo like swalif
    سوف يكون إظهار المقابل لها ضمن منصة base64
    على نظام ال PHP التالي :

    $x =base64_encode ("beshoo like swalif");
    print "$x";

    وسوف تكون النتيجة كالتالي :
    YmVzaG9vIGxpa2Ugc3dhbGlm

    وهي المقابل تماما للكلمة المذكورة أنفا
    طيب
    سوف ترى الأن كيف تم الإستفادة وبشكل فعال جدا من هذة الدالة

    كي يمكن (برمجيا)
    تحويل الكلمة الغير مفهمومة الى كلمة مفهومة سوف نستخدم الدالة العكسية

    base64_decode (string encoded_data)

    والتي سوف تكون صيغتها البرمجية كالتالي

    الكلمة المشفرة هي :YmVzaG9vIGxpa2Ugc3dhbGlm

    توضع الدالة مع الكلمة المشفرة لعكس التشفير :


    $d="YmVzaG9vIGxpa2Ugc3dhbGlm"; ///تم وضعها كمتغير
    $dec = base64_decode ($d);
    print= "$dec";

    هنا يمكننا وبصورة واضحة تماما عرض الكلمة
    beshoo like swalif

    طيب قد فهما كيف نقوم بتشفير وعكس التشفير

    سوف نتعلم كيف نستفيد من هذة الخاصية كي نرسل بريد مع مرفقات:
    بداية دعونا نتخيل سوية
    دخلت الى الموقع
    اه يجب ان اكتب إسمي وعنواني البريدي
    قد نسيت
    عندي هذة الصورة الصغيرة أرد أن أرسلها لصديقي ولا يتوفر عندي مكان أرفعها إلية ولا يوجد عندي حساب بريد اوت لوك )
    اعلم انها فرضية صعبة ولكن دعونا نتخيل :
    يجب علي أن أنشء ملف HTML وملف PHP يتناغم مع ملف ال HTML لكي يعزف رسالة مع مرفقات

    دعوني أبدء بشرح ملف ال HTML :

    بداية سوف نقوم بتعريف نموذج الإرسال (Form)

    <form name="form1" method="post" action="smtp.php" ENCTYPE="multipart/form-data">
    الشرح :
    form name="form1
    قيمة إفتراضية لإسم النموذج .

    method="post"
    ما هية نوع الإرسال وعادة تكون POST لأنها ترسل البيانات كحزمة أما GET فترسلها بهيئة عنوان واضح للعيان .

    action="smtp.php"
    هنا عنوان الملف الذي سوف نقوم بإرسال حزمة البيانات إلية وهو سوف يتولى معالجة كل شيء من البريد وما الى هنالك من امور أخرى.

    ENCTYPE="multipart/form-data
    هذا أهم جزء من الموضع كلة وهنا قبل ان اعلم ذلك واجهتني مشاكل عدة .
    هنا أقوم بعمل تجزيء إن صح التعبير للبيانات المرسلة لملف Smtp.php كي يتم إستلام وتحليل و إرسال المعلومات من ملف ال PHP

    يلزمني الأن بعض صناديق الادخال وهي تحمل الأسماء التالية:

    كود PHP:


      
    <table width="63%" border="1" cellspacing="1" cellpadding="0">
        <
    tr
          <
    td>from </td>
          <
    td
    <!-- 
    هنا يتم كتابة عنوان المرسل -->
            <
    input type="text" name="from">
          </
    td>
        </
    tr>
        <
    tr
          <
    td>to</td>
          <
    td
    <!-- 
    وهنا يكتب عنوان المرسل إلية -->
            <
    input type="text" name="to">
          </
    td>
        </
    tr>
        <
    tr
          <
    td>subject</td>
          <
    td>
    <!-- 
    ام هنا فيتم كتابة موضوع الرسالة--> 
            <
    input type="text" name="subject">
          </
    td>
        </
    tr>
        <
    tr
          <
    td>Message</td>
          <
    td
    <!-- 
    ام هنا فيتم كتابة الرسالة--> 
            <
    textarea name="text"></textarea>
          </
    td>
        </
    tr>
        <
    tr
          <
    td>what the file</td>
          <
    td
            <
    input type="file" name="file" value="Submit">
          </
    td>
        </
    tr>
      </
    table>
      <
    br>
      <
    input type="reset" name="Reset" value="Reset">
      <
    input type="submit" name="Submit2" value="Submit">
      <
    br>
      <
    br>
    </
    form

    وهنا قد إنتهينا من إشاء ملف ال HTML

    والان ننشء ملف باسم smtp.php
    كي نكتب به البرمجية التي سوف ترسل المرفقات و الرسالة في أن واحد
    كود PHP:


    <?
    /* هنا نقوم بعملية إستلام لعملية الرسال التي قمنا بها من الصفحة السابقة وبالذات إستلام امر 
    تحميل الفايل
    */  
       
    $content fread(fopen($file,"r"),filesize($file));
    /*
    هنا نقوم بعملية قراءة ما تم قرائتة في الخطوة السابقة وهو الملف
     والقيام بعملية تشفيرة كي بتحول الى مستند نصي يمكننا من إرسالة ضمن الرسالة التي أصبحت من الان وصاعدا
     عبارة عن رسالة متعددة الأجزاء
    */  
        
    $content chunk_split(base64_encode($content));
    /*

    هنا نقوم بإنشاء الفاصل بين  محتويات الرسالة
    فكما قلنا هناك ملف وهناك نص الرسالة ويجب
     أن يكون هذا افاصل فريد جدا من نوعه
     ولا يجب ان يكون كل فاصل على حدى والا لن يعمل البريد
    */    
        
    $uid strtoupper(md5(uniqid(time())));
    /*
    هنا نقوم بعملية سحب إسم الملف 
    */
        
    $name basename($file);

    /*
    عملية سحب نوع الملف
    */

        
    $type filetype($file); 


    /*
    هنا نقوم بتعريف رأس الرسالة وكما 
    نلاحظ قد وضعنا المتغير الذي يحوي عنوان
     المرسل كي يستطيع مستلم الرسالة أن يرد على صاحب الرسالة
    */
        
    $header "From: $from\nReply-To: $from\n";
    /*
    هنا نقوم بتعريف أن هذة الرسالة تخضع لصيغة
     الرسائل متعددة الأجزاء والصيغة العالمية هي
    MIME
    */
        
    $header .= "MIME-Version: 1.0\n";
    /*
    وهنا أيضا نقوم بتعريف ان الرسالة تحوي فاصل وهو ال 
    $uid
    */
        
    $header .= "Content-Type: multipart/mixed; boundary=$uid\n";
    /*
    طبع الفاصل بين اجزاء الرسالة
    */
        
    $header .= "--$uid\n";
    /*
    تعريف الرسالة أنها نصية
    ويمكن تعديلها لتقبل ال 
    HTML

    Content-Type: text/HTML
    */
        
    $header .= "Content-Type: text/plain\n";
    /*
    تعريف قيمة التشفير النصي
    */
        
    $header .= "Content-Transfer-Encoding: quoted-printable\n\n";
    /*
    هنا يتم طباعة ما تم كتابتة من الشخص المرسل
    */
        
    $header .= "$text\n";
    /*
    طباعة فاصل
    */
        
    $header .= "--$uid\n";

    /*
    هنا يتم طباعة إسم الملف المرفق ونوعه 
    */
        
    $header .= "Content-Type: $type;\n name=\"$name\"\n";
    /*
    هنا نقوم بتعريف ان الملف المرفق مشفر 
    ضمن مستوى تشفير نصي
    base64
    كي ييقوم خادم البريد بعكس العملية 
    فورا وهذا ما يفعلة الاوت لوك أو أي برنامج أخر
    */
        
    $header .= "Content-Transfer-Encoding: base64\n";

    /*
    جزء هام جدا
    هنا يتم تعريف ان الملف هو 
    attachment
    */
        
    $header .= "Content-Disposition: attachment;\n filename=\"$name\"\n\n";

    /*
    هنا يتم طباعة الملف بعد تشفيرة
    */
        
    $header .= "$content\n";

    /*
    طباعة الفاصل
    */
        
    $header .= "--$uid--";
    /*
    هنا تتم أخيرا عملية الإرسال
    */
        
    mail($to$subject""$header);

    /*
    تأكيد عملية الإرسال
    */
    print "<html>
    <head>
    <title>Message Sent to 
    $to</title>
    <meta http-equiv=Content-Type content=text/html; charset=>
    </head>
    <br><br><br>
    <body bgcolor=#FFFFFF text=#000000>
    <table width=85% border=1 cellspacing=1 cellpadding=0 align=center bordercolor=#333333>
      <tr> 
        <td height=16 width=656 bgcolor=#999999></td>
      </tr>
      <tr> 
        <td height=27 valign=top> 
          <div align=center>The message was sent to <b><font color=#FF0000>
    $to</font></b></div>
        </td>
      </tr>
      <tr> 
        <td height=17 bgcolor=#999999></td>
      </tr>
    </table>
    </body>
    </html>
    "
    ;
    ?>


    والجدير بالذكر هو عرض الرسالة كيف تبدو بعد وصولها
    وهي سوف تكون تقريبا كالتالي :


    >From smart@hotmail.com Sun Aug 4 08:40:22 2002
    Received: from hotmail.com (f307.law10.hotmail.com [64.4.14.182])
    by dns2.scs-net.org (8.11.4/8.11.4) with SMTP id g746eK930758
    for <beshoo@scs-net.org>; Sun, 4 Aug 2002 08:40:21 +0200 (GMT+0200)
    Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC;
    Sat, 3 Aug 2002 22:41:02 -0700
    Received: from 62.32.53.152 by lw10fd.law10.hotmail.msn.com with HTTP;
    Sun, 04 Aug 2002 05:41:01 GMT
    X-Originating-IP: [62.32.53.152]
    From: "smart a" <smart@hotmail.com>
    To: beshoo@yahoo.com
    Subject: تحياتي
    Date: Sun, 04 Aug 2002 08:41:01 +0300
    Mime-Version: 1.0
    Content-Type: multipart/mixed; boundary="----=_NextPart_000_5b82_661c_765b"
    Message-ID: <F307yo66Z0Q06uq02IU00006940@hotmail.com>
    X-OriginalArrivalTime: 04 Aug 2002 05:41:02.0223 (UTC) FILETIME=[84A431F0:01C23B79]
    Status:

    This is a multi-part message in MIME format.

    ------=_NextPart_000_5b82_661c_765b
    Content-Type: text/html

    <html><div style='background-color:'>
    <DIV>
    السلام عليكم
    مرحبا بك يا اخي

    أتتريد أن تتعلم ال PHP
    عليك بمنتدى سوالف
    www.swalif.com/softs

    </DIV></div><br clear=all><hr>
    Join the world’s largest e-mail service with MSN Hotmail. <a href='http://g.msn.com/1HM1ENXX/c157??PI=31901'>Click Here</a><br></html>

    ------=_NextPart_000_5b82_661c_765b

    Content-Type: application/x-zip-compressed; name="K2PS030.ZIP"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment;
    filename="K2PS030.ZIP"

    UEsDBBQAAAAIALqsPyy7QCmaXgAAAG8AAAAgAAAApJ/sqiCgoKnvpyCf6eqk
    7O3pL2xvb29vb29vay5leGULycgsVkjLzElVKE8sVsjMS0tNLklNUSjPLMlQ
    SFQoyywqLdbj5QrJSEUoKixNLErMK8nMA6pLqlTwyy8qyc9TcASKhMGVlyp4
    JeYpGBsqGBlaGZtbmQIZBgZGXAwAUEsDBBQAAAAIALqsPywlQINWXgAAAG8A
    AAAWAAAAazJwczAzMC9LMnBTX3NldHVwLmV4ZUXKzQpAQBQGUGvlHb4n0BhJ
    2dlaWMn+YjS3dGV+yNuzYns6g2WPlTeDizxYVjMHs+DiYEE42UWfZ+lgzZ+O
    SI4ksLxvutHvLuyC9pXx6xEdCcoCumjKuqkUtFI6TR5QSwMEFAAAAAgAuqw/
    LCVAg1ZeAAAAbwAAABUAAABrMnBzMDMwL0sycFNfRlVMTC5leGVFys0KQEAU
    BlBr5R2+J9AYSdnZWljJ/mI0t3Rlfsjbs2J7OoNlj5U3g4s8WFYzB7Pg4mBB
    ONlFn2fpYM2fjkiOJLC8b7rR7y7sgvaV8esRHQnKArpoyrqpFLRSOk0eUEsD
    BBQAAAAIAEiTYyYghyjZqQ0AAKEoAAAWAAAAazJwczAzMC9Qcm+faXRhak1l
    LnJ0Zr1abXMbtxHu58zkP8D5UEkOTctSYrtyJo2bphPXrxPJyYzDTAfkgRTu
    BWDvgHNMj/vb++wCdweSJ8dW0vqDKfFwwGL32WcfLPR2VrvlnZk0jZ5lark8
    pv+dnN87OX47W1rj3LzED8ezpdGleHouzjFUnKtaLx+8w4M7s2VtK2lmy8Wl
    rBvlTt7ObmKwrJQ4f1PNbfng3dOL/ke8cTJbNq9108yW6/rfJ8N7p/eHNx/W

    ------=_NextPart_000_5b82_661c_765b--


    أرجو أن أكون قد وفقت بشرح البريد مع المرفقات.
    و أكرر شكري لسوالف و dart والاخ المبرمج الصارم فهم كانو من ساعدني على تركيز الفكرة ولهم الفضل فجزاهم الله عني وعن امة محمد كل الخير .

    كان معكم
    بيشو

    (سلسلة في جعبتي ) -3-





    beshoo غير متواجد حالياً


  2. #2


    الف الف شكر أخي بيشو على هذا الشرح الرائع و المجهود الكبير ،،

    لمن لا يستطيع الوصول الى وصلة الرد ، فإضغط هنا





    البرواز غير متواجد حالياً

  3. #3
    فضلاً اكتب اسمك الحقيقي هنا
    زائر


    رااااااااااااااااااااائع جدا و معلومات ثمينة جدا
    ويعجبني سرعتك في الفهم ثم مساعدتك لإخوانك
    ولكن لا تلعب في العداد






  4. #4
    خبير سيرفرات لينكس
    تاريخ التسجيل
    Mar 1999
    المشاركات
    4,917


    اهلا عمي سوالف

    لا شكر على واجب

    بالنسبة للقصة الاخيرة (المشكلة هي الوسيلة الوحيدة لجلب النظر وكي تعم الفائدة بشكل سريع جدا)

    معليش سوالف عطيني ضو اخضر بالموضوع


    على كل شلون الشرح ؟

    أتمنى أن يكون وافي





    beshoo غير متواجد حالياً

  5. #5
    عضو نشيط
    تاريخ التسجيل
    Mar 2002
    المشاركات
    193

    السلام عليكم



    شلونك أخ beshoo

    يعطيك الف عافية على الموضوع وجزائك الله خير

    أخ beshoo

    ممكن تقول شنهو بداخل التشفيره


    UEsDBBQAAAAIALqsPyy7QCmaXgAAAG8AAAAgAAAApJ/sqiCgoKnvpyCf6eqk
    7O3pL2xvb29vb29vay5leGULycgsVkjLzElVKE8sVsjMS0tNLklNUSjPLMlQ
    SFQoyywqLdbj5QrJSEUoKixNLErMK8nMA6pLqlTwyy8qyc9TcASKhMGVlyp4
    JeYpGBsqGBlaGZtbmQIZBgZGXAwAUEsDBBQAAAAIALqsPywlQINWXgAAAG8A
    AAAWAAAAazJwczAzMC9LMnBTX3NldHVwLmV4ZUXKzQpAQBQGUGvlHb4n0BhJ
    2dlaWMn+YjS3dGV+yNuzYns6g2WPlTeDizxYVjMHs+DiYEE42UWfZ+lgzZ+O
    SI4ksLxvutHvLuyC9pXx6xEdCcoCumjKuqkUtFI6TR5QSwMEFAAAAAgAuqw/
    LCVAg1ZeAAAAbwAAABUAAABrMnBzMDMwL0sycFNfRlVMTC5leGVFys0KQEAU
    BlBr5R2+J9AYSdnZWljJ/mI0t3Rlfsjbs2J7OoNlj5U3g4s8WFYzB7Pg4mBB
    ONlFn2fpYM2fjkiOJLC8b7rR7y7sgvaV8esRHQnKArpoyrqpFLRSOk0eUEsD
    BBQAAAAIAEiTYyYghyjZqQ0AAKEoAAAWAAAAazJwczAzMC9Qcm+faXRhak1l
    LnJ0Zr1abXMbtxHu58zkP8D5UEkOTctSYrtyJo2bphPXrxPJyYzDTAfkgRTu
    BWDvgHNMj/vb++wCdweSJ8dW0vqDKfFwwGL32WcfLPR2VrvlnZk0jZ5lark8
    pv+dnN87OX47W1rj3LzED8ezpdGleHouzjFUnKtaLx+8w4M7s2VtK2lmy8Wl
    rBvlTt7ObmKwrJQ4f1PNbfng3dOL/ke8cTJbNq9108yW6/rfJ8N7p/eHNx/W

    أعتقد base64 هذا اسم شخص الماني





    __________________
    أتمنى من الأعضاء من له يوزر في منتديات اجنبية ان يضع هذا الرابط في توقيعه .. لتعريفهم بــ 10 لغات عن سيرة الرسول صلى الله عليه وسلم

    http://mohammad.islamway.com/?lang=eng
    PasT غير متواجد حالياً

  6. #6
    خبير سيرفرات لينكس
    تاريخ التسجيل
    Mar 1999
    المشاركات
    4,917


    الملف المشفر يحوي ملف zip
    كان بداخلة برنامج الكلينر 3





    beshoo غير متواجد حالياً

  7. #7


    موضوع جميل

    لكن ودي أفهم ما علاقتي بهذا الموضوع





    __________________
    عزوز الحسني
    أبو ماجد الصارم غير متواجد حالياً

  8. #8
    خبير سيرفرات لينكس
    تاريخ التسجيل
    Mar 1999
    المشاركات
    4,917


    هنا تكمن علاقتك يا صارم
    http://64.191.4.10/softs/showthread.php?threadid=29527

    لانك اضئت لي فكرة صغيرة استفدت منها
    وفكرتك لها حقوق وانا اشكرك لاني استعملت فكرتك .





    beshoo غير متواجد حالياً

  9. #9


    في الواقع لم أنس الموضوع ولكني لم أتوقع أنك وصلت له
    معذرة لم أشاهد ردك الأخير هناك

    على كل موضوع تشكر عليه





    __________________
    عزوز الحسني
    أبو ماجد الصارم غير متواجد حالياً

  10. #10
    عضو سوبر نشيط
    تاريخ التسجيل
    Jul 2001
    المشاركات
    617


    مشكووور يا بيشوو وجزاك الله خير.
    ومثل ما قال لك المراقب لا تلعب بالعداد .
    وبدي منك مسنجرك لأني عاوزك عليه؟ ممكن؟





    __________________
    ------------------------------
    PHP 4 Arabs
    ------------------------------
    Hisham غير متواجد حالياً

  11. #11
    خبير سيرفرات لينكس
    تاريخ التسجيل
    Mar 1999
    المشاركات
    4,917


    هههههههههههههههههههه
    خلااااااااااااااااااااااااااااااص
    والله ما عاد العب بالعدادااااااااااااااااااااااااااااااااااااااااااا اااااااااد

    هههههههههههههههههههههههههههههههههههههههههههههههههه ه
    بس حبيت الشغلة

    طيب
    انا مسنجري beshoo_beshoo@hotmail.com





    beshoo غير متواجد حالياً

  12. #12
    عضو سوبر نشيط
    تاريخ التسجيل
    Jul 2001
    المشاركات
    617


    ههههههه
    عجبتك الشغلة
    أضفتك على المسنجر
    بس ليش ما تدخل عليه؟؟
    ما تكون عملت لي بلوك؟؟





    __________________
    ------------------------------
    PHP 4 Arabs
    ------------------------------
    Hisham غير متواجد حالياً

  13. #13
    فضلاً اكتب اسمك الحقيقي هنا
    زائر


    للفائدة






  14. #14
    عضو نشيط جدا
    تاريخ التسجيل
    Apr 2001
    المشاركات
    488


    ماشاءالله ..اسلوبك مميز في الشرح .. وموضوع قيم فعلاً



    إلا وش رايك نفتح مدرسه انا وياك وانت المدرس عيني عليك باردة

    موفق لكل خير





    __________________
    Has been gone
    FAISAL1 غير متواجد حالياً





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا|شقق للايجار في الكويت | بيوت للبيع في الكويت | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض