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

simplu Mail Transmission Protocol

  • Faceți clic pe meniul Find...

simplu Mail Transmission Protocol

  • Va apărea meniul de dialog de căutare

simplu Mail Transmission Protocol

  • Faceți clic pe butonul Find Next

simplu Mail Transmission Protocol

  • 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:

simplu Mail Transmission Protocol

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:

Dezinfectarea intrărilor utilizatorilor de e-mail

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