Come inviare e-mail utilizzando la funzione PHP mail()

Che cos'è PHP mail?

PHP mail è la funzione PHP integrata che viene utilizzata per inviare email dagli script PHP.

La funzione mail accetta i seguenti parametri:

  • E-mail
  • Oggetto
  • Messaggio
  • Indirizzi email CC o BC

  • È un modo conveniente per avvisare gli utenti di eventi importanti.
  • Consenti agli utenti di contattarti via e-mail fornendo un modulo di contatto sul sito Web che invia tramite e-mail il contenuto fornito.
  • Gli sviluppatori possono utilizzarlo per ricevere gli errori di sistema via e-mail
  • Puoi utilizzarlo per inviare email agli iscritti alla tua newsletter.
  • Puoi usarlo per inviare collegamenti per la reimpostazione della password agli utenti che dimenticano la password
  • Puoi usarlo per inviare link di attivazione/conferma via email. È utile quando si registrano utenti e si verificano i loro indirizzi email

Perché/Quando usare la posta PHP

Invio di posta tramite PHP

La funzione di posta PHP ha la seguente sintassi di base

<?php
mail($to_email_address,$subject,$message,[$headers],[$parameters]);
?>

QUI,

  • “$to_email_address” è l’indirizzo email del destinatario della posta
  • “$subject” è l’oggetto dell’email
  • “$message” è il messaggio da inviare.
  • "[$headers]" è facoltativo, può essere utilizzato per includere informazioni come CC, BCC

    • CC è l'acronimo di copia carbone. Viene utilizzato quando si desidera inviare una copia a una persona interessata, ad esempio un'e-mail di reclamo inviata a un'azienda può anche essere inviata come CC al comitato reclami.
    • BCC è l'acronimo di copia carbone nascosta. È simile a CC. Gli indirizzi email inclusi nella sezione BCC non saranno mostrati agli altri destinatari.

Semplice Mail Transmission Protocollo (SMTP)

Il mailer PHP utilizza Simple Mail Transmission Protocollo (SMTP) per inviare posta.

Su un server ospitato, le impostazioni SMTP sarebbero già state configurate.

Le impostazioni di posta SMTP possono essere configurate dal file “php.ini” nella cartella di installazione di PHP.

Configurazione delle impostazioni SMTP sul tuo localhost Supponendo che tu stia utilizzando xampp su Windows, individua “php.ini” nella directory “C:\xampp\php”.

  • Aprilo utilizzando il blocco note o qualsiasi editor di testo. Utilizzeremo il blocco note in questo esempio. Fare clic sul menu Modifica

Semplice Mail Transmission Protocollo

  • Fare clic sul menu Trova…

Semplice Mail Transmission Protocollo

  • Verrà visualizzato il menu della finestra di dialogo Trova

Semplice Mail Transmission Protocollo

  • Fare clic sul pulsante Trova successivo

Semplice Mail Transmission Protocollo

  • Individua le voci

    • [funzione posta]
    • ; XAMPP: Non rimuovere la semicolonna se vuoi lavorare con un server SMTP simile Mercury
    • ; SMTP = host locale
    • ; porta_smtp = 25
    • Rimuovi il punto e virgola prima di SMTP e smtp_port e imposta SMTP su your server smtp e la porta sulla tua porta SMTP. Le tue impostazioni dovrebbero apparire come segue

      • SMTP = smtp.esempio.com
      • porta_smtp = 25
      • Note: le impostazioni SMTP possono essere ottenute dai tuoi provider di web hosting.
      • Se il server richiede l'autenticazione, aggiungere le seguenti righe.

        • auth_username = example_username@example.com
        • autenticazione_password = esempio_password
        • Salva le nuove modifiche.
        • Ricomincia Apache server.

PHP Mail Esempio

Diamo ora un'occhiata a un esempio che invia una semplice email.

<?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);
?>

Produzione:

Semplice Mail Transmission Protocollo

Nota: l'esempio precedente accetta solo i 4 parametri obbligatori.

Dovresti sostituire l'indirizzo email fittizio sopra riportato con un indirizzo email reale.

Sanificazione degli input degli utenti di posta elettronica

Per semplicità, nell'esempio sopra riportato vengono utilizzati valori hardcoded nel codice sorgente per l'indirizzo e-mail e altri dettagli.

Supponiamo che tu debba creare un modulo di contatto in cui gli utenti devono compilare i dettagli e poi inviarlo.

  • Gli utenti possono iniettare accidentalmente o intenzionalmente codice nelle intestazioni, il che può causare l'invio di posta indesiderata
  • Per proteggere il sistema da tali attacchi, puoi creare una funzione personalizzata che pulisca e convalidi i valori prima dell'invio della mail.

Creiamo una funzione personalizzata che convalida e pulisce l'indirizzo email utilizzando la funzione integrata filter_var.

Funzione Filter_var La funzione filter_var viene utilizzata per disinfettare e convalidare i dati di input dell'utente.

La sintassi di base è la seguente.

<?php
filter_var($field, SANITIZATION TYPE);
?>

QUI,

  • “filter_var(…)” è la funzione di convalida e sanificazione
  • “$field” è il valore del campo da filtrare.
  • “TIPO DI SANIFICAZIONE” è il tipo di sanificazione da eseguire sul campo come;

    • FILTRO_VALUTA_EMAIL – restituisce true per gli indirizzi email validi e false per gli indirizzi email non validi.
    • FILTRO_SANIFICA_EMAIL – rimuove i caratteri illegali dagli indirizzi email. info\@domain.(com) restituisce info@domain.com.
    • FILTER_SANITIZE_URL – rimuove i caratteri illegali dagli URL. http://www.esempio@.comé restituisce >http://www.esempio@.com
    • FILTER_SANITIZE_STRING – rimuove i tag dai valori stringa. sono audace diventa audace.

Il codice seguente implementa una funzione personalizzata per inviare posta sicura.

<?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";
}
?>

Produzione:

Sanificazione degli input degli utenti di posta elettronica

Assicurate Mail

Le e-mail possono essere intercettate durante la trasmissione da destinatari indesiderati.

Ciò potrebbe rendere il contenuto dell'e-mail fruibile da destinatari indesiderati.

La posta sicura risolve questo problema trasmettendo le e-mail tramite il protocollo HTTPS (Hypertext Transfer Protocol Secure).

HTTPS crittografa i messaggi prima di inviarli.

Sommario

  • Le PHP la funzione integrata mail() viene utilizzata per inviare posta da script PHP
  • I controlli di convalida e sanificazione dei dati sono essenziali per l'invio di posta sicura
  • La funzione incorporata in PHP filter_var() fornisce un modo semplice ed efficiente per eseguire la sanificazione e la convalida dei dati