Ang panghuling mensahe ay html. Paano magpadala ng mga text message gamit ang PHP. Tagatanggap: kaganapan onmessage


                // Buksan ang file para sa pagbabasa sa binary format na $ file \u003d fopen ("file.zip", "rb"); // Basahin ito sa string $ str_file $ str_file \u003d fread ($ file, fileize ("file.zip")); // I-convert ang string na ito sa base64 format $ str_file \u003d base64_encode ($ str_file);

Ngayon ang variable $ str_filena naglalaman ng file ay maaaring maipasok sa sulat.

Upang sa wakas isama ang materyal, magsusulat kami ng isang function na nagpapadala ng isang sulat sa format na HTML sa tinukoy na tatanggap kasama ang nakalakip na file:

   / * $ hanggang - mensahe ng tatanggap ng mensahe $ mula sa_mail - address ng nagpadala ng mensahe $ mula sa_name - pangalan ng nagpadala ng mensahe $ paksa - mensahe ng mensahe $ mensahe - mensahe ng HTML mismo $ file_name - landas sa file na mai-attach sa mensahe (maaari itong maging pangalan ng file na napili sa bukid ) * / function sendMail ($ to, $ from_mail, $ from_name, $ subject, $ message, $ file_name) ($ bound \u003d "spravkaweb-1234"; $ header \u003d "Mula sa:" $ from_name "n"; $ header. \u003d "To: $ ton"; $ header. \u003d "Paksa: $ subjectn"; $ header. \u003d "Mime-Bersyon: 1.0n"; $ header. \u003d "Nilalaman-Uri: multipart / halo-halong; hangganan \u003d" $ nakatali ""; $ body \u003d "nn - $ boundn"; $ body. \u003d "Uri ng nilalaman: teksto / html; charset \u003d" windows-1251 "\\ n"; $ body. \u003d "Nilalaman-Transfer-Encoding: sinipi -printablenn "; $ body. \u003d" $ message "; $ file \u003d fopen ($ file_name," rb "); $ body. \u003d" nn - $ boundn "; $ body. \u003d" Nilalaman-Uri: application / octet -stream; "; $ body. \u003d" name \u003d ". basename ($ file_name)." \\ n "; $ body. \u003d" Nilalaman-Transfer-Encoding: base64n "; $ body. \u003d" Nilalaman-Disposisyon: attachmentnn " ; $ body. \u003d base64_encode (fread ($ file, filesize ($ file_name))). "n"; $ body. \u003d "$ bound - nn"; kung (mail ($ to, $ subject, $ body, $ header)) (echo "Ang mensahe ay matagumpay na naipadala!";) iba pa (echo "Ang mensahe ay hindi ipinadala!";););

Ang HTTP ay batay sa modelo ng arkitektura ng kliyente-server at isang hindi mabilang na kahilingan / protocol ng pagtugon na nagpapatakbo sa pamamagitan ng pagpapalitan ng mga mensahe sa isang maaasahang koneksyon ng TCP / IP.

Ang isang "client" ng HTTP ay isang programa (Web browser o anumang iba pang kliyente) na nagtatatag ng isang koneksyon sa isang server para sa layunin ng pagpapadala ng isa o higit pang mga mensahe ng kahilingan sa HTTP. Ang isang "server" ng HTTP ay isang programa (sa pangkalahatan ay isang web server tulad ng Apache Web Server o Internet Information Services IIS, atbp.) Na tumatanggap ng mga koneksyon upang maghatid ng mga kahilingan sa HTTP sa pamamagitan ng pagpapadala ng mga mensahe ng tugon ng HTTP.

Ginagamit ng HTTP ang Uniform Resource Identifier (URI) upang makilala ang isang naibigay na mapagkukunan at upang magtatag ng isang koneksyon. Kapag naitatag ang koneksyon, Mga mensahe sa HTTP  ay ipinasa sa isang format na katulad ng ginamit ng Internet mail at Multipurpose Internet Mail Extension (MIME). Kasama sa mga mensahe na ito mga kahilingan  mula sa kliyente hanggang sa server at tugon  mula sa server hanggang client na magkakaroon ng sumusunod na format:

Ang mensahe ng HTTP \u003d |   ; Mga mensahe sa HTTP / 1.1

Ang mga kahilingan ng HTTP at mga tugon ng HTTP ay gumagamit ng isang format ng pangkaraniwang mensahe ng RFC 822 para sa paglilipat ng kinakailangang data. Ang pangkaraniwang format ng mensahe ay binubuo ng sumusunod na apat na item.

  • Isang panimulang linya
  • Zero o higit pang mga patlang ng header na sinusundan ng CRLF
  • Isang walang linya na linya (i.e., isang linya na walang naunang nasa CRLF) na nagpapahiwatig ng pagtatapos ng mga patlang ng header
  • Opsyonal na isang mensahe-katawan

Sa mga sumusunod na seksyon, ipapaliwanag namin ang bawat isa sa mga nilalang na ginamit sa isang mensahe ng HTTP.

Linya ng Start-Line

Ang isang panimulang linya ay magkakaroon ng sumusunod na generic syntax:

Start-line \u003d Kahilingan-Line | Linya ng katayuan

Tatalakayin namin ang Request-Line at Status-Line habang pinag-uusapan ang mga HTTP Request at HTTP Response na mga mensahe. Sa ngayon, tingnan natin ang mga halimbawa ng linya ng pagsisimula sa kaso ng kahilingan at tugon:

GET /hello.htm HTTP / 1.1 (Ito ang Kahilingan-Line na ipinadala ng kliyente) HTTP / 1.1 200 OK (Ito ang Status-Line na ipinadala ng server)

Mga patlang ng header

Nagbibigay ang mga patlang ng HTTP header ng kinakailangang impormasyon tungkol sa kahilingan o tugon, o tungkol sa bagay na ipinadala sa katawan ng mensahe. Mayroong apat na uri ng mga header ng mensahe ng HTTP:

    Pangkalahatang header:  Ang mga patlang ng header na ito ay may pangkalahatang kakayahang magamit para sa parehong mga mensahe ng kahilingan at pagtugon.

    Humiling-header:  Ang mga patlang ng header na ito ay may kakayahang magamit lamang para sa mga mensahe ng kahilingan.

    Tugon-header:  Ang mga patlang ng header na ito ay may kakayahang magamit lamang para sa mga mensahe ng pagtugon.

    Header ng entity:  Ang mga patlang ng header na ito ay tumutukoy sa impormasyon tungkol sa meta tungkol sa entity-body o, kung wala ang katawan, tungkol sa mapagkukunang natukoy ng kahilingan.

Ang lahat ng nabanggit na mga header ay sumusunod sa parehong pangkaraniwang pangkaraniwang format at ang bawat isa sa larangan ng header ay binubuo ng isang pangalan na sinusundan ng isang colon ( : ) at ang halaga ng bukid tulad ng sumusunod:

Message-header \u003d field-name ":" [larangan-halaga]

Ang sumusunod ay ang mga halimbawa ng iba't ibang larangan ng header:

Ahente ng Gumagamit: curl / 7.16.3 libcurl / 7.16.3 OpenSSL / 0.9.7l zlib / 1.2.3 Host: www.example.com Tanggapin-Wika: en, mi Petsa: Mon, 27 Hulyo 2009 12:28:53 GMT Server: Apache Huling-Nabago: Wed, 22 Hulyo 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" Tanggapin-Ranges: byte Nilalaman-Haba: 51 Pahiwatig: Tumanggap-Encoding Nilalaman-Uri: teksto / plain

Katawan ng mensahe

Ang bahagi ng mensahe ng katawan ay opsyonal para sa isang mensahe ng HTTP ngunit kung magagamit ito, pagkatapos ito ay ginagamit upang dalhin ang entity-body na nauugnay sa kahilingan o tugon. Kung ang katawan ng entidad ay nauugnay, pagkatapos ay karaniwang Uri ng nilalaman  at Haba ng nilalaman  Tinukoy ng mga linya ng header ang likas na katangian ng katawan na nauugnay.

   Naglalaman lamang ng teksto (mababang timbang ng mensahe)

  $ name \u003d "Pyotr Petrovich"; / opsyonal na variable bilang isang halimbawa ng pagpasok sa mensahe

  $ subject \u003d "Paksa ng post"; // paksa ng mensahe
  $ message \u003d "Kumusta,". $ pangalan. "! \\ n
  Tanungin mo lang kamusta ka! \\ N
  Sincerely, Ivan Ivanovich "; // nilalaman ng mensahe
  mail ($ email, $ subject, $ message, "Mula sa: [email protected] \\ nReply-To: [email protected] \\ nContent-type: text / plain; Charset \u003d utf-8 \\ r \\ n"); // magpadala ng isang mensahe
?>

2. Pagpapadala ng mail php type text / html

  Maaaring maglaman ng mga elemento ng graphic html, mga link at iba pa.
  Maraming impormasyon ang inilipat

  // ipadala sa maraming mga tatanggap
  $ hanggang \u003d "[email protected]". ","; // kung kanino kami pinapadala
  $ to. \u003d "[email protected]". ","; // Babala! Kaya sinusulat namin ang pangalawa at iba pa sa mga address
  // huwag kalimutan ang koma. Kahit na sa huling pakikipag-ugnay ay hindi magiging labis
  // Para sa mga nagsisimula! $ to. \u003d tuldok sa kasong ito para sa Pag-aplay sa isang variable

  // itakda ang uri ng mensahe sa Uri ng nilalaman, kung nais namin
  $ header \u003d "MIME-Bersyon: 1.0". "\\ r \\ n";
  $ header. \u003d "Uri ng nilalaman: teksto / html; charset \u003d utf-8 \\ r \\ n";

  // karagdagang data
  $ header. \u003d "Mula sa: yournick \\ r \\ n "; // kung kanino
  $ header. \u003d "Cc: [email protected]". "\\ r \\ n"; // kopyahin ang mensahe sa address na ito
  $ header. \u003d "Bcc: [email protected] \\ r \\ n"; // bulag na kopya ng mensahe sa ito
  mail ($ to, $ paksa, $ mensahe, $ header);
?>

3. Paano gamitin ang CSS sa isang liham?

  Narito nais kong agad na mapabagabag ka ng kaunti - ang CSS sa form na iyong ginagamit ay hindi nagkakahalaga ng paggamit. Mail, Yandex, Google, Outlook - itapon ang mga estilo mula sa mga titik. Gayunpaman, mayroong isang paraan out.

Natutupad namin ang maraming mga kondisyon:
1)   Inaasahan ko na hindi mo kailangang linawin na ginagamit namin Uri ng nilalaman: teksto / html

2)   Tandaan kung ano lamesa  werst. Ngayon ipinasok namin ang lahat ng mga estilo lamang dito. Maaari mo ring matandaan sentro, font.




Mula sa: Ivanov Ivan Ivanovich
Address: [email protected]
Mensahe: Tumitingin kami at nagagalak

  Sa div  ang parehong bagay

Ang teksto na kailangan mo

3)   Sa halimbawa sa itaas, sa pagpapadala ng liham, ibinigay ang linyang ito. Kaya huwag mo siyang kalimutan

  $ header \u003d "MIME-Bersyon: 1.0". "\\ r \\ n";

4)   Gumamit HTML 3.2. Ipasok ang mga titik ng html sa simula.


5)   Bilang background - maaari mong kulayan. Kung nais mo ang isang imahe sa background, pagkatapos gawin ang lahat ng teksto at background ng isang imahe. Bilang isang pagpipilian: maaari mong tukuyin ang isang background-image para sa katawan.

6)   Ang nag-iisang imahe sa cell sa Gmail ay may 3px indent mula sa ibaba, upang maiwasan ito ay ipinahiwatig namin ito