Cum se trimite e-mail folosind funcția PHP mail().
Ce este poșta PHP?
PHP mail este funcția PHP încorporată care este folosită pentru a trimite e-mailuri din scripturi PHP.
Funcția de e-mail acceptă următorii parametri:
- Adresă de e-mail
- Subiect
- Mesaj
- Adrese de e-mail CC sau BC
- Este o modalitate eficientă din punct de vedere al costurilor de a notifica utilizatorii cu privire la evenimentele importante.
- Permiteți utilizatorilor să vă contacteze prin e-mail, furnizând un formular de contact pe site-ul web care trimite prin e-mail conținutul furnizat.
- Dezvoltatorii îl pot folosi pentru a primi erori de sistem prin e-mail
- Îl puteți folosi pentru a trimite e-mail abonaților la newsletter.
- Îl puteți folosi pentru a trimite linkuri de resetare a parolei utilizatorilor care își uită parolele
- Îl puteți folosi pentru a trimite prin e-mail linkurile de activare/confirmare. Acest lucru este util atunci când înregistrați utilizatori și le verificați adresele de e-mail
De ce/Când să folosiți e-mailul PHP
Trimiterea de mail folosind PHP
Funcția de e-mail PHP are următoarea sintaxă de bază
<?php mail($to_email_address,$subject,$message,[$headers],[$parameters]); ?>
AICI,
- „$to_email_address” este adresa de e-mail a destinatarului e-mailului
- „$subject” este subiectul e-mailului
- „$message” este mesajul care trebuie trimis.
- „[$headers]” este opțional, poate fi folosit pentru a include informații precum CC, BCC
- CC este acronimul pentru copie carbon. Este folosit atunci când doriți să trimiteți o copie unei persoane interesate, adică un e-mail de reclamație trimis unei companii poate fi trimis și ca CC către comisia de reclamații.
- BCC este acronimul pentru copie oarbă. Este similar cu CC. Adresele de e-mail incluse în secțiunea BCC nu vor fi afișate celorlalți destinatari.
simplu Mail Transmission Protocol (SMTP)
Mailerul PHP folosește Simplu Mail Transmission Protocol (SMTP) pentru a trimite e-mail.
Pe un server găzduit, setările SMTP ar fi fost deja setate.
Setările de e-mail SMTP pot fi configurate din fișierul „php.ini” din folderul de instalare PHP.
Configurarea setărilor SMTP pe gazda locală Presupunând că utilizați xampp pe Windows, localizați „php.ini” în directorul „C:\xampp\php”.
- Deschideți-l folosind notepad sau orice editor de text. Vom folosi notepad în acest exemplu. Faceți clic pe meniul de editare
- Faceți clic pe meniul Find...
- Va apărea meniul de dialog de căutare
- Faceți clic pe butonul Find Next
- Localizați intrările
- [funcția de e-mail]
- ; XAMPP: Nu eliminați semicoloana dacă doriți să lucrați cu un server SMTP ca Mercury
- ; SMTP = gazdă locală
- ; smtp_port = 25
- Îndepărtați punctele și punctele înainte de SMTP și smtp_port și setați SMTP la dvs server SMTP și portul către portul dvs. smtp. Setările dvs. ar trebui să arate după cum urmează
- SMTP = smtp.example.com
- smtp_port = 25
- notițe setările SMTP pot fi obținute de la furnizorii dvs. de găzduire web.
- Dacă serverul necesită autentificare, adăugați următoarele rânduri.
- auth_username = example_username@example.com
- auth_password = exemplu_parolă
- Salvați noile modificări.
- Repornire Apache Server.
PHP Mail Exemplu
Să ne uităm acum la un exemplu care trimite un e-mail simplu.
<?php $to_email = 'name @ company . com'; $subject = 'Testing PHP Mail'; $message = 'This mail is sent using the PHP mail function'; $headers = 'From: noreply @ company . com'; mail($to_email,$subject,$message,$headers); ?>
ieșire:
Notă: exemplul de mai sus ia doar cei 4 parametri obligatorii.
Ar trebui să înlocuiți adresa de e-mail fictive de mai sus cu o adresă de e-mail reală.
Dezinfectarea intrărilor utilizatorilor de e-mail
Exemplul de mai sus folosește valori codificate în codul sursă pentru adresa de e-mail și alte detalii pentru simplitate.
Să presupunem că trebuie să creați un formular de contact pentru utilizatori, completați detaliile și apoi trimiteți.
- Utilizatorii pot injecta accidental sau intenționat cod în anteturi, ceea ce poate duce la trimiterea de mesaje spam
- Pentru a vă proteja sistemul de astfel de atacuri, puteți crea o funcție personalizată care igienizează și validează valorile înainte ca e-mailul să fie trimis.
Să creăm o funcție personalizată care validează și igienizează adresa de e-mail folosind funcția încorporată filter_var.
Funcția Filter_var Funcția filter_var este utilizată pentru a igieniza și valida datele introduse de utilizator.
Are următoarea sintaxă de bază.
<?php filter_var($field, SANITIZATION TYPE); ?>
AICI,
- „filter_var(…)” este funcția de validare și dezinfectare
- „$field” este valoarea câmpului care trebuie filtrat.
- “TIP IGIENIZARE” este tipul de igienizare care se efectueaza pe teren precum;
- FILTER_VALIDATE_EMAIL – returnează true pentru adresele de e-mail valide și false pentru adresele de e-mail nevalide.
- FILTER_SANITIZE_EMAIL – elimină caracterele ilegale din adresele de e-mail. info\@domain.(com) returnează info@domain.com.
- FILTER_SANITIZE_URL – elimină caracterele ilegale din URL-uri. http://www.example@.comé returnează >http://www.example@.com
- FILTER_SANITIZE_STRING – elimină etichetele din valorile șirurilor. am bold devine am bold.
Codul de mai jos implementează folosește o funcție personalizată pentru a trimite e-mailuri securizate.
<?php function sanitize_my_email($field) { $field = filter_var($field, FILTER_SANITIZE_EMAIL); if (filter_var($field, FILTER_VALIDATE_EMAIL)) { return true; } else { return false; } } $to_email = 'name @ company . com'; $subject = 'Testing PHP Mail'; $message = 'This mail is sent using the PHP mail '; $headers = 'From: noreply @ company. com'; //check if the email address is invalid $secure_check $secure_check = sanitize_my_email($to_email); if ($secure_check == false) { echo "Invalid input"; } else { //send email mail($to_email, $subject, $message, $headers); echo "This email is sent using PHP Mail"; } ?>
ieșire:
Asigura Mail
E-mailurile pot fi interceptate în timpul transmiterii de către destinatari neintenționați.
Acest lucru poate expune conținutul e-mailului către destinatari neintenționați.
Poșta securizată rezolvă această problemă prin transmiterea de e-mailuri prin Hypertext Transfer Protocol Secure (HTTPS).
HTTPS criptează mesajele înainte de a le trimite.
Rezumat
- PHP funcția încorporată mail() este folosită pentru a trimite mail din scripturi PHP
- Verificările de validare și igienizare a datelor sunt esențiale pentru trimiterea de e-mailuri securizate
- Funcția PHP încorporată filter_var() oferă un mod ușor de utilizat și eficient de a efectua igienizarea și validarea datelor