Cum se trimite mesaje text folosind PHP. Sfaturi PHP: Trimiterea de e-mailuri cu PHP: Fișier atașat Mesaj final html

Conține doar text (greutate mică a mesajului)

$nume = „Peter Petrovici”; // variabilă opțională ca exemplu de inserat într-un mesaj

$subject = "Subiectul mesajului"; //Subiectul mesajului
$mesaj = „Bună ziua”.$nume.”!\n
Întrebați doar cum sunteți!\n
Cu stimă, Ivan Ivanovici"; // conținutul mesajului
mail($email, $subject, $message, „De la: [email protected]\nRăspuns la: [email protected]\nContent-type:text/plain; Charset=utf-8\r\n"); //trimite mesaj
?>

2. Trimiterea unei scrisori mail php Tastați text/html

Poate conține elemente html grafice, link-uri etc.
Mai multe informații transferate

// trimite la mai mulți destinatari
$to=" [email protected]" . ", "; // trimite cui
$to .=" [email protected]" . ", "; // Atenție! Așa că scriem a doua și așa mai departe adrese
// nu uita virgula. Nici la ultimul contact nu va fi de prisos
// Pentru incepatori! $to .= punct în acest caz pentru adăugarea unei variabile

// setăm tipul de conținut al mesajului dacă dorim
$headers = "Versiune MIME: 1.0" . „\r\n”;
$headers .= "Tip conținut: text/html; set de caractere=utf-8 \r\n";

// date adiționale
$headers .= „De la: yournick \r\n"; // de la cine
$headers .= "Cc: [email protected]" . "\r\n"; // o copie a mesajului la această adresă
$headers .= "Bcc: [email protected]\r\n"; // copie oarbă a mesajului către acesta
mail($to, $subiect, $mesaj, $anteturi);
?>

3. Cum se utilizează CSS în scris?

Aici vreau să te supăr puțin imediat - CSS în forma cu care te-ai obișnuit nu trebuie folosit. Mail, Yandex, Google, Outlook - aruncați stilurile din e-mailuri. Cu toate acestea, există o cale de ieșire.

Să îndeplinim mai multe condiții:
1) Sper că nu este nevoie să explicăm ce folosim tip de conținut: text/html

2) Amintește-ți ce este masa Verstskaya. Acum toate stilurile sunt introduse numai în el. De asemenea, vă puteți aminti centru, font.




De la: Ivanov Ivan Ivanovici
Adresa: [email protected]
Mesaj: Priviți și bucurați-vă

Cu div aceeași

Textul de care aveți nevoie

3) În exemplul de mai sus cu trimiterea unei scrisori, acest rând a fost dat. Deci să nu uităm

$headers = "Versiune MIME: 1.0" . „\r\n”;

4) Folosim HTML 3.2. Lipiți la începutul scrisorii html.


5) Ca fundal - puteți colora. Dacă doriți o imagine de fundal, atunci faceți tot textul și fundalul o imagine. Alternativ, puteți specifica o imagine de fundal pentru corp.

6) Singura poză din celulă din Gmail are o indentație de 3px din partea de jos, pentru a evita acest lucru, o specificăm

// Deschide fișierul pentru citire în format binar $file=fopen("fișier.zip", "rb"); // Citiți-l într-un șir $str_file $str_file=fread($file,filesize("file.zip")); // Convertiți acest șir în formatul base64 $str_file=base64_encode($str_file);

Acum variabila $str_file, care conține fișierul, poate fi inserat în e-mail.

Pentru a finaliza materialul, să scriem o funcție care trimite o scrisoare în format HTML către destinatarul specificat cu un fișier atașat:

/* $to - adresa destinatarului de e-mail $from_mail - adresa expeditorului de e-mail $from_name - numele expeditorului de e-mail $subject - subiectul e-mailului $message - mesajul în sine în format HTML $file_name - calea către fișierul care urmează să fie atașat la e-mail (este poate fi numele fișierului selectat în câmp ) */ function sendMail($to,$from_mail,$from_name,$subject,$message,$file_name) ( $bound="spravkaweb-1234"; $header="De la: "$from_name" n"; $header. ="Către: $ton"; $header.="Subiect: $subjectn"; $header.="Versiune MIME: 1.0n"; $header.="Tip de conținut: multipart/mixed; boundary="$legat ""; $body="nn--$boundn"; $body.="Tip de conținut: text/html; charset="windows-1251"\n"; $body.="Codificare de transfer de conținut: citat -printablenn"; $body.="$mesaj"; $file=fopen($file_name,"rb"); $body.="nn--$boundn"; $body.="Content-Type: application/octet -stream;"; $body.="name=".basename($file_name)."\n"; $body.="Content-Transfer-Encoding:base64n"; $body.="Content-Disposition:attachmentnn" ; $body.=base64_encode(fread($file,filesize($file_name)))."n"; $body.="$bound--nn"; if(mail($to, $subject, $body, $ antet)) ( echo " E-mailul a fost trimis cu succes!"; ) else ( echo " Mesajul nu a fost trimis! "; ); );

HTTP se bazează pe modelul de arhitectură client-server și pe un protocol de cerere/răspuns fără stat care funcționează prin schimbul de mesaje printr-o conexiune TCP/IP fiabilă.

Un „client” HTTP este un program (browser Web sau orice alt client) care stabilește o conexiune la un server în scopul trimiterii unuia sau mai multor mesaje de solicitare HTTP. Un „server” HTTP este un program (în general un server web precum Apache Web Server sau Internet Information Services IIS, etc.) care acceptă conexiuni pentru a servi cererile HTTP prin trimiterea de mesaje de răspuns HTTP.

HTTP utilizează URI (Uniform Resource Identifier) ​​pentru a identifica o anumită resursă și pentru a stabili o conexiune. Odată stabilită conexiunea, Mesaje HTTP sunt transmise într-un format similar cu cel folosit de e-mail-ul de internet și de extensiile de poștă Internet multifuncțională (MIME) . Aceste mesaje includ cereri de la client la server şi răspunsuri de la server la client care va avea următorul format:

http-message= | ; Mesaje HTTP/1.1

Solicitările HTTP și răspunsurile HTTP utilizează un format de mesaj generic RFC 822 pentru transferul datelor necesare. Acest format de mesaj generic constă din următoarele patru elemente.

  • O linie de start
  • Zero sau mai multe câmpuri de antet urmate de CRLF
  • O linie goală (adică, o linie fără nimic înaintea CRLF) care indică sfârșitul câmpurilor de antet
  • Opțional un mesaj-corp

În secțiunile următoare, vom explica fiecare dintre entitățile utilizate într-un mesaj HTTP.

Linia de început a mesajului

O linie de început va avea următoarea sintaxă generică:

Start-line = Request-Line | Linia de stare

Vom discuta despre Linia de solicitare și Linia de stare în timp ce discutăm despre mesajele de solicitare HTTP și, respectiv, de răspuns HTTP. Deocamdată, să vedem exemplele de linie de pornire în caz de solicitare și răspuns:

GET /hello.htm HTTP/1.1 (Aceasta este linia de solicitare trimisă de client) HTTP/1.1 200 OK (aceasta este linia de stare trimisă de server)

Câmpuri de antet

Câmpurile de antet HTTP oferă informații necesare despre cerere sau răspuns sau despre obiectul trimis în corpul mesajului. Există patru tipuri de anteturi de mesaje HTTP:

    antet general: Aceste câmpuri de antet au aplicabilitate generală atât pentru mesajele de solicitare, cât și pentru mesajele de răspuns.

    antetul cererii: Aceste câmpuri de antet au aplicabilitate numai pentru mesajele de solicitare.

    antet răspuns: Aceste câmpuri de antet au aplicabilitate numai pentru mesajele de răspuns.

    antet-entitate: Aceste câmpuri de antet definesc metainformații despre entitate-corp sau, dacă nu este prezent niciun corp, despre resursa identificată de cerere.

Toate anteturile menționate mai sus urmează același format generic și fiecare câmp de antet constă dintr-un nume urmat de două puncte ( : ) și valoarea câmpului după cum urmează:

Antetul mesajului = numele câmpului „:” [ valoarea câmpului ]

Următoarele sunt exemple de diferite câmpuri de antet:

Agent utilizator: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3 Gazdă: www.example.com Limbă de acceptare: en, mi Data: Luni, 27 iulie 2009 12:28:53 Server PM GMT: Apache Ultima modificare: miercuri, 22 iulie 2009 19:15:56 GMT ETag: „34aa387-d-1568eb00” Interval de acceptare: octeți Lungimea conținutului: 51 Variație: Acceptare codificare Tip conținut: text/ simplu

Conținutul mesajului

Partea corpului mesajului este opțională pentru un mesaj HTTP, dar dacă este disponibilă, atunci este utilizată pentru a transporta corpul entității asociat cu cererea sau răspunsul. Dacă corpul entității este asociat, atunci de obicei tipul de conținutși lungimea conținutului liniile de antet specifică natura corpului asociat.