ข้อความสุดท้ายคือ html วิธีการส่งข้อความโดยใช้ 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 ไปยังผู้รับที่ระบุพร้อมไฟล์แนบ:

   / * $ to - ที่อยู่ผู้รับข้อความ $ from_mail - ที่อยู่ผู้ส่งข้อความ $ from_name - ชื่อผู้ส่งข้อความ $ subject - ข้อความหัวเรื่อง $ message - ข้อความ HTML เอง $ file_name - พา ธ ไปยังไฟล์ที่จะแนบไปกับข้อความ ชื่อของไฟล์ที่เลือกในฟิลด์ ) * / function sendMail ($ ถึง, $ from_mail, $ from_name, $ subject, $ message, $ file_name) ($ bound \u003d "spravkaweb-1234"; $ header \u003d "จาก:" $ from_name "n"; $ header \u003d "ถึง: $ ton"; $ header. \u003d "หัวเรื่อง: $ subjectn"; $ header. \u003d "เวอร์ชัน Mime: 1.0n"; $ header. \u003d "ประเภทเนื้อหา: หลายส่วน / หลากหลาย; \u003d" $ bound ""; $ body \u003d "nn - $ boundn"; $ body. \u003d "ประเภทเนื้อหา: text / html; charset \u003d" windows-1251 "\\ n"; $ body. \u003d "การเข้ารหัสโอนเนื้อหา: อ้างถึง -printablenn "; $ body. \u003d" $ message "; $ file \u003d fopen ($ file_name," rb "); $ body. \u003d" nn - $ boundn "; $ body. \u003d" ประเภทเนื้อหา: application / octet -stream; "; $ body. \u003d" name \u003d ". basename ($ file_name)." \\ n "; $ body. \u003d" การเข้ารหัสการถ่ายโอนเนื้อหา: base64n "; $ body. \u003d" เนื้อหาการจัดการ: สิ่งที่แนบมา " ; $ body. \u003d base64_encode (fread ($ file, filesize ($ file_name))) "n"; $ body. \u003d "$ bound - nn" ถ้า (เมล ($ ถึง, $ subject, $ body, $ header)) (echo "ข้อความถูกส่งเรียบร้อยแล้ว!";) อื่น (echo "ข้อความไม่ถูกส่ง!";););

HTTP ขึ้นอยู่กับรูปแบบสถาปัตยกรรมไคลเอนต์ - เซิร์ฟเวอร์และโปรโตคอลคำขอ / ตอบกลับแบบไร้สัญชาติที่ทำงานโดยการแลกเปลี่ยนข้อความผ่านการเชื่อมต่อ TCP / IP ที่เชื่อถือได้

HTTP "ไคลเอนต์" เป็นโปรแกรม (เว็บเบราว์เซอร์หรือไคลเอนต์อื่น ๆ ) ที่สร้างการเชื่อมต่อไปยังเซิร์ฟเวอร์เพื่อจุดประสงค์ในการส่งข้อความร้องขอ HTTP หนึ่งข้อความขึ้นไป HTTP "เซิร์ฟเวอร์" เป็นโปรแกรม (โดยทั่วไปคือเว็บเซิร์ฟเวอร์เช่น Apache Web Server หรือ Internet Information Services IIS เป็นต้น) ที่ยอมรับการเชื่อมต่อเพื่อให้บริการคำขอ HTTP โดยการส่งข้อความตอบกลับ HTTP

HTTP ใช้ประโยชน์จาก Uniform Resource Identifier (URI) เพื่อระบุทรัพยากรที่กำหนดและเพื่อสร้างการเชื่อมต่อ เมื่อทำการเชื่อมต่อเรียบร้อยแล้ว ข้อความ HTTP  จะถูกส่งผ่านในรูปแบบที่คล้ายกับที่ใช้โดยจดหมายทางอินเทอร์เน็ตและส่วนขยายจดหมายทางอินเทอร์เน็ตอเนกประสงค์ (MIME) ข้อความเหล่านี้รวมถึง การร้องขอ  จากลูกค้าไปยังเซิร์ฟเวอร์และ การตอบสนอง  จากเซิร์ฟเวอร์ไปยังไคลเอนต์ซึ่งจะมีรูปแบบต่อไปนี้:

ข้อความ HTTP \u003d |   ; ข้อความ HTTP / 1.1

คำร้องขอ HTTP และการตอบกลับ HTTP ใช้รูปแบบข้อความทั่วไปของ RFC 822 สำหรับการถ่ายโอนข้อมูลที่ต้องการ รูปแบบข้อความทั่วไปนี้ประกอบด้วยสี่รายการต่อไปนี้

  • เส้นเริ่มต้น
  • ฟิลด์ส่วนหัวเป็นศูนย์หรือมากกว่านั้นตามด้วย CRLF
  • บรรทัดว่าง (เช่นบรรทัดที่ไม่มีอะไรนำหน้า CRLF) ระบุถึงจุดสิ้นสุดของฟิลด์ส่วนหัว
  • เลือกเนื้อหาข้อความ

ในส่วนต่อไปนี้เราจะอธิบายแต่ละเอนทิตีที่ใช้ในข้อความ HTTP

ข้อความเริ่มบรรทัด

บรรทัดเริ่มต้นจะมีไวยากรณ์ทั่วไปต่อไปนี้:

Start-line \u003d Request-Line | บรรทัดสถานะ

เราจะหารือเกี่ยวกับ Request-Line และ Status-Line ขณะที่พูดคุยเกี่ยวกับคำขอ HTTP และข้อความตอบกลับ HTTP ตามลำดับ สำหรับตอนนี้เรามาดูตัวอย่างของบรรทัดเริ่มต้นในกรณีที่มีการร้องขอและตอบกลับ:

GET /hello.htm HTTP / 1.1 (นี่คือ Request-Line ที่ลูกค้าส่งมา) HTTP / 1.1 200 OK (นี่คือ Status-Line ที่เซิร์ฟเวอร์ส่งมา)

ฟิลด์ส่วนหัว

ฟิลด์ส่วนหัว HTTP ให้ข้อมูลที่จำเป็นเกี่ยวกับคำขอหรือการตอบสนองหรือเกี่ยวกับวัตถุที่ส่งในส่วนเนื้อหาข้อความ ส่วนหัวของข้อความ HTTP สี่ประเภท:

    ทั่วไปส่วนหัว:  ฟิลด์ส่วนหัวเหล่านี้มีการบังคับใช้ทั่วไปสำหรับทั้งคำขอและข้อความตอบกลับ

    ขอส่วนหัว:  ฟิลด์ส่วนหัวเหล่านี้มีการบังคับใช้สำหรับข้อความขอเท่านั้น

    การตอบสนองต่อหัว:  ฟิลด์ส่วนหัวเหล่านี้มีการบังคับใช้สำหรับข้อความตอบกลับเท่านั้น

    นิติบุคคลส่วนหัว:  ฟิลด์ส่วนหัวเหล่านี้กำหนดข้อมูลเมตาเกี่ยวกับเอนทิตีร่างกายหรือหากไม่มีเนื้อหาเกี่ยวกับทรัพยากรที่ระบุโดยการร้องขอ

ส่วนหัวที่กล่าวถึงข้างต้นทั้งหมดมีรูปแบบทั่วไปเหมือนกันและแต่ละฟิลด์ส่วนหัวประกอบด้วยชื่อตามด้วยเครื่องหมายโคลอน ( : ) และค่าฟิลด์ดังต่อไปนี้:

Message-header \u003d field-name ":" [field-value]

ต่อไปนี้เป็นตัวอย่างของฟิลด์ส่วนหัวต่างๆ:

ตัวแทนผู้ใช้: 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 แก้ไขครั้งล่าสุด: พุธ 22 ก.ค. 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" ยอมรับช่วง: ไบต์ความยาวเนื้อหา: 51 ต่างกัน: ยอมรับการเข้ารหัสเนื้อหาประเภท: ข้อความ / ธรรมดา

เนื้อหาของข้อความ

ส่วนเนื้อหาของข้อความเป็นตัวเลือกสำหรับข้อความ HTTP แต่ถ้ามีก็จะใช้เพื่อดำเนินการนิติบุคคล - ร่างกายที่เกี่ยวข้องกับการร้องขอหรือการตอบสนอง หากหน่วยงานที่เกี่ยวข้องมีความเกี่ยวข้องมักจะ ประเภทเนื้อหา  และ ความยาวของเนื้อหา  บรรทัดส่วนหัวระบุลักษณะของร่างกายที่เกี่ยวข้อง

   มีข้อความเท่านั้น (น้ำหนักข้อความต่ำ)

  $ name \u003d "Pyotr Petrovich"; // ตัวแปรเผื่อเลือกเป็นตัวอย่างของการแทรกลงในข้อความ

  $ subject \u003d "โพสต์หัวเรื่อง"; // หัวเรื่องข้อความ
  $ message \u003d "Hello,". $ name. "! \\ n
  แค่ถามคุณเป็นอย่างไรบ้าง \\ N
  ขอแสดงความนับถือ Ivan Ivanovich "; // เนื้อหาข้อความ
  อีเมล ($ email, $ subject, $ message, "จาก: [email protected] \\ n ตอบกลับถึง: [email protected] \\ n เนื้อหาประเภท: ข้อความ / ธรรมดา; Charset \u003d utf-8 \\ r \\ n"); // ส่งข้อความ
?>

2. การส่งจดหมายประเภทข้อความ PHP / html

  อาจมีองค์ประกอบกราฟิก HTML ลิงก์และอื่น ๆ
  ถ่ายโอนข้อมูลเพิ่มเติม

  // ส่งไปยังผู้รับหลายคน
  $ to \u003d "[email protected]" ""; // สำหรับผู้ที่เราส่ง
  $ to. \u003d "[email protected]" ""; // คำเตือน! ดังนั้นเราจึงเขียนที่อยู่ที่สองเป็นต้น
  // อย่าลืมเครื่องหมายจุลภาค แม้ในการติดต่อครั้งสุดท้ายจะไม่ฟุ่มเฟือย
  // สำหรับผู้เริ่มต้น! $ to. \u003d dot ในกรณีนี้เพื่อต่อท้ายตัวแปร

  // ตั้งค่าประเภทข้อความเป็นประเภทเนื้อหาหากเราต้องการ
  $ headers \u003d "MIME-Version: 1.0" "\\ r \\ n";
  $ headers. \u003d "ประเภทเนื้อหา: text / html; charset \u003d utf-8 \\ r \\ n";

  // ข้อมูลเพิ่มเติม
  $ headers. \u003d "จาก: yournick \\ r \\ n "; // จากใคร
  $ headers. \u003d "Cc: [email protected]" "\\ r \\ n"; // คัดลอกข้อความไปยังที่อยู่นี้
  $ headers. \u003d "Bcc: [email protected] \\ r \\ n"; // สำเนาข้อความตาบอดถึงสิ่งนี้
  เมล ($ ถึง, $ subject, $ message, $ header);
?>

3. วิธีใช้ CSS ในจดหมาย

  ที่นี่ฉันต้องการทำให้คุณผิดหวังเล็กน้อย - CSS ในรูปแบบที่คุณคุ้นเคยไม่คุ้มค่าที่จะใช้ Mail, Yandex, Google, Outlook - โยนสไตล์จากตัวอักษร อย่างไรก็ตามมีทางออก

เราปฏิบัติตามเงื่อนไขหลายประการ:
1)   ฉันหวังว่าคุณไม่จำเป็นต้องชี้แจงว่าเราใช้ ประเภทเนื้อหา: ข้อความ / html

2)   จำไว้ว่าคืออะไร ตาราง  vorstska ตอนนี้เราเข้าสู่สไตล์ทั้งหมดเท่านั้น คุณยังจำได้ ศูนย์, ตัวอักษร.




จาก: Ivanov Ivan Ivanovich
ที่อยู่: [email protected]
ข้อความ: เรามองและดีใจ

  C div  สิ่งเดียวกัน

ข้อความที่คุณต้องการ

3)   ในตัวอย่างด้านบนด้วยการส่งจดหมายบรรทัดนี้จะได้รับ ดังนั้นอย่าลืมเธอ

  $ headers \u003d "MIME-Version: 1.0" "\\ r \\ n";

4)   ใช้ HTML 3.2. แทรกตัวอักษร html ที่จุดเริ่มต้น


5)   เป็นพื้นหลัง - คุณสามารถสี หากคุณต้องการภาพพื้นหลังแล้วทำให้ทุกข้อความและพื้นหลังภาพ เป็นตัวเลือก: คุณสามารถระบุภาพพื้นหลังสำหรับร่างกาย

6)   รูปภาพเดียวในเซลล์ใน Gmail มีการเยื้อง 3px จากด้านล่างเพื่อหลีกเลี่ยงสิ่งนี้เราระบุไว้