Poslední zpráva je html. Jak posílat textové zprávy pomocí PHP. Příjemce: onmessage event


                // Otevřete soubor pro čtení v binárním formátu $ file \u003d fopen ("file.zip", "rb"); // přečte to do řetězce $ str_file $ str_file \u003d fread ($ file, filesize ("file.zip")); // Převést tento řetězec na formát base64 $ str_file \u003d base64_encode ($ str_file);

Nyní proměnná $ str_file, který obsahuje soubor, lze vložit do dopisu.

Pro konečnou konsolidaci materiálu napíšeme funkci, která pošle dopis ve formátu HTML určenému příjemci s připojeným souborem:

   / * $ to - adresa příjemce zprávy $ from_mail - adresa odesílatele zprávy $ from_name - jméno odesílatele zprávy $ předmět - předmět zprávy $ zpráva - samotná HTML zpráva $ file_name - cesta k souboru, který má být připojen ke zprávě (to může být název souboru vybraného v poli ) * / funkce sendMail ($ to, $ from_mail, $ from_name, $ předmět, $ message, $ file_name) ($ bound \u003d "spravkaweb-1234"; $ header \u003d "From:" $ from_name "n"; $ header. \u003d "Komu: $ ton"; $ header. \u003d "Předmět: $ Subjectn"; $ header. \u003d "Mime-Version: 1.0n"; $ header. \u003d "Content-Type: multipart / mixed; boundary \u003d" $ bound ""; $ body \u003d "nn - $ boundn"; $ body. \u003d "Content-type: text / html; charset \u003d" windows-1251 "\\ n"; $ body. \u003d "Content-Transfer-Encoding: citováno -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: attachnn " ; $ body. \u003d base64_encode (fread ($ file, fileize ($ file_name))). "n"; $ body. \u003d "$ bound - nn"; if (mail ($ to, $ subjekt, $ body, $ header)) (echo "Zpráva byla úspěšně odeslána!";) else (echo "Zpráva nebyla odeslána!";););

HTTP je založen na modelu architektury klient-server a protokolu bez státní příslušnosti / odpovědi, který funguje výměnou zpráv přes spolehlivé připojení TCP / IP.

HTTP klient je program (webový prohlížeč nebo jakýkoli jiný klient), který navazuje připojení k serveru za účelem odeslání jedné nebo více zpráv s požadavkem HTTP. HTTP server je program (obvykle webový server, jako je webový server Apache nebo Internetová informační služba IIS atd.), Který přijímá připojení za účelem plnění požadavků HTTP odesíláním zpráv s odpověďmi HTTP.

HTTP používá Uniform Resource Identifier (URI) k identifikaci daného zdroje a navázání spojení. Po navázání spojení HTTP zprávy   jsou předávány ve formátu podobném formátu používanému internetovou poštou a víceúčelovými internetovými rozšířeními (MIME). Tyto zprávy obsahují žádosti   z klienta na server a odpovědi   ze serveru na klienta, který bude mít následující formát:

HTTP zpráva \u003d |   ; Zprávy HTTP / 1.1

Požadavky HTTP a odpovědi HTTP používají k přenosu požadovaných dat obecný formát zprávy RFC 822. Tento obecný formát zprávy se skládá z následujících čtyř položek.

  • Startovní čára
  • Nulová nebo více polí záhlaví následovaná CRLF
  • Prázdný řádek (tj. Řádek s ničím předcházejícím CRLF) označující konec polí záhlaví
  • Volitelně tělo zprávy

V následujících částech vysvětlíme každou z entit použitých ve zprávě HTTP.

Počáteční řádek zprávy

Start-line bude mít následující obecnou syntaxi:

Start-line \u003d Request-Line | Stavový řádek

Budeme diskutovat Request-Line a Status-Line při diskusi HTTP Request a HTTP Response. Prozatím se podívejme na příklady startovní čáry v případě požadavku a odpovědi:

GET /hello.htm HTTP / 1.1 (Toto je řádek požadavku odeslaný klientem) HTTP / 1.1 200 OK (Toto je stavový řádek odeslaný serverem)

Pole záhlaví

Pole záhlaví HTTP poskytují požadované informace o požadavku nebo odpovědi nebo o objektu odeslaném v těle zprávy. Existují čtyři typy záhlaví zpráv HTTP:

    Obecná hlavička:   Tato pole záhlaví mají obecnou použitelnost pro zprávy o požadavcích i odpovědi.

    Záhlaví požadavku:   Tato pole záhlaví jsou použitelná pouze pro zprávy s požadavky.

    Záhlaví odpovědi:   Tato pole záhlaví jsou použitelná pouze pro odpovědi.

    Záhlaví entity:   Tato pole záhlaví definují meta informace o subjektu entita nebo, pokud není k dispozici, o prostředku identifikovaném požadavkem.

Všechny výše uvedené záhlaví mají stejný obecný formát a každé pole záhlaví se skládá z názvu následovaného dvojtečkou ( : ) a hodnota pole následovně:

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

Níže uvádíme příklady různých polí záhlaví:

User-Agent: curl / 7.16.3 libcurl / 7.16.3 OpenSSL / 0.9.7l zlib / 1.2.3 Host: www.example.com Přijímací jazyk: en, mi Datum: Po, 27. července 2009 12:28:53 Server GMT: Apache Poslední změna: St, 22 červenec 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" Akceptovat rozsahy: bajty Obsah-délka: 51 Vary: Accept-Encoding Content-Type: text / plain

Text zprávy

Část těla zprávy je volitelná pro zprávu HTTP, ale pokud je k dispozici, pak se používá k přenášení těla subjektu spojeného s požadavkem nebo odpovědí. Pokud je tělo entity spojeno, obvykle Typ obsahu   a Délka obsahu   řádky záhlaví určují povahu přidruženého těla.

   Obsahuje pouze text (nízká hmotnost zprávy)

  $ name \u003d "Pyotr Petrovich"; // volitelná proměnná jako příklad vložení do zprávy

  $ subject \u003d "Příspěvek"; // předmět zprávy
  $ message \u003d "Dobrý den,". $ name. "! \\ n
  Jen se zeptej, jak se máš! \\ N
  S pozdravem Ivan Ivanovich "; // Obsah zprávy
  mail ($ email, $ Subject, $ message, "From: [email protected] \\ nReply-To: [email protected] \\ nContent-type: text / plain; Charset \u003d utf-8 \\ r \\ n"); // poslat zprávu
?>

2. Odesílání textu typu php / html

  Může obsahovat grafické prvky html, odkazy atd.
  Další informace byly přeneseny

  // poslat více příjemcům
  $ to \u003d "[email protected]". ","; // komu posíláme
  $ to. \u003d "[email protected]". ","; // Varování! Takže píšeme druhou a tak na adresy
  // nezapomeňte čárku. Ani při posledním kontaktu nebude zbytečné
  // Pro začátečníky! $ to. \u003d tečka v tomto případě pro připojení k proměnné

  // pokud chceme, nastavte typ zprávy na typ obsahu
  $ headers \u003d "MIME-Version: 1.0". "\\ r \\ n";
  $ headers. \u003d "Content-type: text / html; charset \u003d utf-8 \\ r \\ n";

  // další data
  $ headers. \u003d "From: yournick \\ r \\ n "; // od koho
  $ headers. \u003d "Cc: [email protected]". "\\ r \\ n"; // zkopírujte zprávu na tuto adresu
  $ headers. \u003d "Bcc: [email protected] \\ r \\ n"; // slepá kopie zprávy
  mail ($ to, $ Subject, $ message, $ header);
?>

3. Jak používat CSS v dopise?

  Zde vás chci okamžitě trochu rozladit - CSS ve formě, na kterou jste zvyklí, nestojí za to používat. Mail, Yandex, Google, Outlook - házení stylů z písmen. Existuje však cesta ven.

Splňujeme několik podmínek:
1)   Doufám, že nemusíte objasňovat, že používáme Typ obsahu: text / html

2)   Pamatujte, co je stůl   werst. Nyní zadáváme všechny styly pouze v něm. Můžete si také pamatovat centrum, písmo.




Z: Ivanov Ivan Ivanovich
Adresa: [email protected]
Zpráva: Díváme se a radujeme se

  S div   totéž

Text, který potřebujete

3)   Ve výše uvedeném příkladu byl s odesláním dopisu uveden tento řádek. Takže na ni nezapomeň

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

4)   Použití HTML 3.2. Na začátek vložte html písmena.


5)   Jako pozadí - můžete barvy. Pokud chcete obrázek na pozadí, vytvořte z něj veškerý text a obrázek na pozadí. Jako možnost: můžete určit obrázek pozadí pro tělo.

6)   Jediný obrázek v buňce v Gmailu má odspodu 3px odrážku, abychom tomu zabránili