الرسالة النهائية هي أتش تي أم أل. كيفية إرسال رسائل نصية باستخدام PHP. المستلم: حدث onmessage


                // افتح الملف للقراءة بتنسيق ثنائي $ file \u003d fopen ("file.zip"، "rb")؛ / / اقرأها في السلسلة $ str_file $ str_file \u003d fread ($ file ، filesize ("file.zip")) ؛ // تحويل هذه السلسلة إلى تنسيق base64 $ str_file \u003d base64_encode ($ str_file)؛

الآن المتغير str_file $الذي يحتوي على الملف يمكن إدراجها في الرسالة.

لدمج المادة أخيرًا ، سنكتب وظيفة ترسل خطابًا بتنسيق HTML إلى المستلم المحدد مع الملف المرفق:

   / * $ إلى - عنوان مستلم الرسالة $ from_mail - عنوان مرسل الرسالة $ from_name - اسم مرسل الرسالة $ موضوع - موضوع الرسالة $ message - رسالة HTML نفسها $ file_name - مسار الملف الذي سيتم إرفاقه بالرسالة (يمكن أن يكون هذا اسم الملف المحدد في الحقل ) * / function sendMail ($ to، $ from_mail، $ from_name، $ topic، $ message، $ file_name) ($ bound \u003d "spravkaweb-1234"؛ $ header \u003d "From:" $ from_name "n"؛ $ header. \u003d "إلى: $ ton" ؛ $ header. \u003d "Subject: $ subjectn" ؛ $ header. \u003d "Mime-Version: 1.0n" ؛ $ header. \u003d "Content-Type: multipart / mixed؛ borderary \u003d" $ bound ""؛ $ body \u003d "nn - $ boundn"؛ $ body. \u003d "Content-type: text / html؛ charset \u003d" windows-1251 "\\ n"؛ $ body. \u003d "Content-Transfer-Encoding: ونقلت -printablenn "؛ $ body. \u003d" $ message "؛ $ file \u003d fopen ($ file_name،" rb ")؛ $ body. \u003d" nn - $ boundn "؛ $ body. \u003d" Content-Type: application / octet -stream؛ "؛ $ body. \u003d" name \u003d ". basename ($ file_name)." \\ n "؛ $ body. \u003d" Content-Transfer-Encoding: base64n "؛ $ body. \u003d" Content-Disposition: attachmentnn " ؛ $ body. \u003d base64_encode (fread ($ file، filesize ($ file_name))). "n"؛ $ body. \u003d "$ bound - nn"؛ if (mail ($ to، $ topic، $ body، $ header)) (صدى "تم إرسال الرسالة بنجاح!"؛) آخر (صدى "لم يتم إرسال الرسالة!"؛)؛)؛

يعتمد بروتوكول HTTP على طراز بنية خادم العميل وبروتوكول طلب / استجابة عديم الحالة يعمل عن طريق تبادل الرسائل عبر اتصال TCP / IP موثوق.

HTTP "العميل" هو برنامج (متصفح الويب أو أي عميل آخر) ينشئ اتصالًا بخادم بغرض إرسال رسالة أو أكثر من طلبات طلب HTTP. HTTP "server" هو برنامج (عمومًا خادم ويب مثل Apache Web Server أو IIS Information Services IIS ، وما إلى ذلك) يقبل الاتصالات من أجل خدمة طلبات HTTP عن طريق إرسال رسائل استجابة HTTP.

يستخدم HTTP معرف المورد الموحد (URI) لتحديد مورد معين وإقامة اتصال. بمجرد تأسيس الاتصال ، رسائل HTTP  يتم تمريرها بتنسيق مشابه لتلك المستخدمة من قبل بريد الإنترنت وملحقات بريد إنترنت متعدد الأغراض (MIME). هذه الرسائل تشمل طلبات  من العميل إلى الخادم و ردود  من الخادم إلى العميل الذي سيكون بالتنسيق التالي:

رسالة HTTP \u003d |   . رسائل HTTP / 1.1

تستخدم طلبات HTTP واستجابات HTTP تنسيق رسالة عامة لـ RFC 822 لنقل البيانات المطلوبة. يتكون تنسيق الرسالة العامة من العناصر الأربعة التالية.

  • خط البدء
  • صفر أو أكثر من حقول رأس متبوعة CRLF
  • سطر فارغ (على سبيل المثال ، خط مع عدم وجود شيء يسبق CRLF) يشير إلى نهاية حقول الرأس
  • اختياريا رسالة الجسم

في الأقسام التالية ، سنشرح كل من الكيانات المستخدمة في رسالة HTTP.

رسالة خط البدء

سيكون لسطر البدء بناء الجملة التالي:

خط البدء \u003d طلب خط | خط الحالة

سنناقش سطر الطلب وخط الحالة أثناء مناقشة طلب HTTP ورسائل استجابة HTTP على التوالي. الآن ، دعنا نرى أمثلة لسطر البدء في حالة الطلب والاستجابة:

GET /hello.htm HTTP / 1.1 (هذا سطر طلب مرسل من قبل العميل) HTTP / 1.1 200 OK (هذا هو سطر الحالة الذي تم إرساله من قبل الخادم)

حقول الرأس

توفر حقول رأس HTTP المعلومات المطلوبة حول الطلب أو الاستجابة أو حول الكائن المرسل في نص الرسالة. هناك أربعة أنواع من رؤوس رسائل HTTP:

    العام-الرأس:  حقول الحقول هذه لها قابلية تطبيق عامة لكل من رسائل الطلب والاستجابة.

    رأس طلب:  حقول الحقول هذه لها قابلية التطبيق فقط لرسائل الطلب.

    استجابة الرأس:  حقول الحقول هذه لها قابلية التطبيق فقط لرسائل الاستجابة.

    كيان الرأس:  تعرّف حقول الرأس هذه معلومات التعريف الخاصة بالكيان - أو ، في حالة عدم وجود نص ، حول المورد المحدد بواسطة الطلب.

تتبع جميع الرؤوس المذكورة أعلاه نفس التنسيق العام ويتكون كل حقل رأس من اسم متبوعًا بنقطتين ( : ) وقيمة الحقل على النحو التالي:

رأس الرسالة \u003d اسم الحقل ":" [قيمة الحقل]

فيما يلي أمثلة حقول رأس مختلفة:

User-Agent: curl / 7.16.3 libcurl / 7.16.3 OpenSSL / 0.9.7l zlib / 1.2.3 المضيف: www.example.com قبول-اللغة: en ، mi التاريخ: الاثنين ، 27 يوليو 2009 12:28:53 خادم GMT: Apache آخر تعديل: Wed، 22 Jul 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" قبول - النطاقات: بايت طول المحتوى: 51 تنوع: قبول - ترميز نوع المحتوى: text / عادي

نص الرسالة

يعد جزء نص الرسالة اختياريًا لرسالة HTTP ولكن إذا كان ذلك متاحًا ، فسيتم استخدامه لحمل كيان النص المرتبط بالطلب أو الاستجابة. إذا كان يرتبط كيان الجسم ، ثم عادة نوع المحتوى  و طول المحتوى  تحدد خطوط الرؤوس طبيعة الجسم المرتبط.

   يحتوي فقط على نص (وزن رسالة منخفض)

  $ name \u003d "Pyotr Petrovich"؛ // متغير اختياري كمثال على الإدراج في الرسالة

  $ topic \u003d "موضوع الرسالة" ؛ // موضوع الرسالة
  $ message \u003d "مرحبًا ،". $ name. "! \\ n
  فقط أسأل كيف حالك!
  مع خالص التقدير ، إيفان إيفانوفيتش "؛ // محتوى الرسالة
  mail ($ email ، $ topic ، $ message ، "From: [email protected] \\ nReply-To: [email protected] \\ n نوع المحتوى: text / plain؛ Charset \u003d utf-8 \\ r \\ n")؛ // إرسال رسالة
?>

2. إرسال البريد نوع php النص / أتش تي أم أل

  قد تحتوي على عناصر html للروابط والروابط وما إلى ذلك.
  نقل المزيد من المعلومات

  // إرسالها إلى عدة مستلمين
  $ إلى \u003d "[email protected]". ""؛ // لمن نرسله
  $ إلى. \u003d "[email protected]". ""؛ // تحذير! لذلك نكتب عناوين الثانية وهلم جرا
  / / لا تنس الفاصلة. حتى في الاتصال الماضي لن تكون زائدة عن الحاجة
  // للمبتدئين! $ إلى. \u003d نقطة في هذه الحالة للإلحاق بمتغير

  / / اضبط نوع الرسالة على نوع المحتوى ، إذا أردنا ذلك
  رؤوس $ \u003d "MIME-Version: 1.0". "\\ r \\ n"؛
  رؤوس $. \u003d "Content-type: text / html؛ charset \u003d utf-8 \\ r \\ n"؛

  // بيانات إضافية
  رؤوس $. \u003d "من: yournick \\ r \\ n "؛ // من من
  رؤوس $. \u003d "نسخة إلى: [email protected]". "\\ r \\ n"؛ // نسخ الرسالة إلى هذا العنوان
  رؤوس $. \u003d "نسخة مخفية الوجهة: [email protected] \\ r \\ n"؛ // نسخة أعمى من الرسالة إلى هذا
  بريد ($ إلى ، $ موضوع ، $ message ، $ رؤوس) ؛
?>

3. كيفية استخدام CSS في خطاب؟

  أنا هنا أريد أن أزعجك قليلاً - CSS بالشكل الذي اعتدت عليه لا يستحق استخدامه. Mail، Yandex، Google، Outlook - رمي الأنماط من الحروف. ومع ذلك ، هناك طريقة للخروج.

نحن نلتقي بعدة شروط:
1)   أتمنى ألا تحتاج إلى توضيح أننا نستخدمها نوع المحتوى: نص / أتش تي أم أل

2)   تذكر ما هو طاولة  vorstska. الآن ندخل جميع الأنماط فيه فقط. قد نتذكر أيضا مركز, الخط.




من: إيفانوف إيفان إيفانوفيتش
العنوان: [email protected]
الرسالة: ننظر ونفرح

  C شعبة  نفس الشيء

النص الذي تحتاجه

3)   في المثال أعلاه ، مع إرسال الرسالة ، تم إعطاء هذا السطر. لذلك لا تنساها

  رؤوس $ \u003d "MIME-Version: 1.0". "\\ r \\ n"؛

4)   استعمال HTML 3.2. أدخل حروف لغة تأشير النص الفائق في البداية.


5)   كخلفية - يمكنك اللون. إذا كنت تريد صورة خلفية ، فاجعل كل النص والخلفية صورة. كخيار: يمكنك تحديد صورة خلفية للجسم.

6)   الصورة الوحيدة الموجودة في الخلية في Gmail بها مسافة بادئة 3px من الأسفل ، لتجنب ذلك نوضحها