php

Uso della funzione mail() in PHP su Ubuntu

Uso della funzione mail() in PHP su Ubuntu

La funzione mail() è una funzione PHP incorporata che viene utilizzata per inviare e-mail dal localhost. Ma sono necessarie alcune configurazioni per inviare e-mail utilizzando questa funzione. Avrai bisogno delle informazioni del server di posta reale per impostare la configurazione. Puoi utilizzare le informazioni del server di posta del tuo server di hosting attivo oppure puoi utilizzare qualsiasi informazione del server di posta gratuita. In questo tutorial vengono utilizzati un account Gmail e le informazioni sul server SMTP di Gmail per inviare e-mail utilizzando la funzione mail().

Configurazione Configurazione

Saranno necessari due file da modificare per impostare la configurazione: il php.ini file ed è necessario configurare un altro file per configurare il server di posta. Seguire i passaggi mostrati di seguito per impostare la configurazione. Sono disponibili molti pacchetti in PHP per l'invio di un'e-mail. msmtp è un client di server di posta PHP utilizzato in questo tutorial per inviare e-mail utilizzando la funzione PHP mail().

Passi:

Eseguire il seguente comando per installare il msmtp pacchetto su Ubuntu per configurare il server di posta:

$ sudo apt-get install msmtp

Crea un file di configurazione con il nome /etc/msmtprc con il seguente comando:

$ sudo nano /etc/msmtprc

Aggiungi il seguente contenuto al file. Aggiungi l'indirizzo email valido per il utente e la password valida per il parola d'ordine che verrà utilizzato per inviare un'e-mail. Imposta l'indirizzo email del mittente per modulo valore.

default
tls acceso
tls_starttls attivo
tls_trust_file /etc/ssl/certs/ca-certificates.crt
default dell'account
host smtp.gmail.come
porta 587
autenticazione attiva
utente [email protected]
password password_utente
da sender_email_address

Esegui i seguenti comandi per impostare la proprietà e l'autorizzazione per /etc/msmtprc file:

$ sudo chown fahmida /etc/msmtprc
$ sudo chmod 0600 /etc/msmtprc

Apri il php.ini file e modificare il seguente contenuto con i seguenti valori:

SMTP=smtp.gmail.come
smtp_port=587
sendmail_path = "/usr/bin/msmtp -t -i"

Sintassi:

bool mail (stringa $a, stringa $oggetto, stringa $messaggio [, misto $intestazioni_aggiuntive [, stringa $parametri_aggiuntivi ]])

Questa funzione può accettare quattro argomenti. Il primo argomento prende l'indirizzo email del destinatario. Il secondo argomento prende l'oggetto dell'e-mail. Il terzo argomento prende il corpo dell'email. L'ultimo argomento è facoltativo e contiene informazioni aggiuntive sull'e-mail come stringa o array.

Invio di email utilizzando la funzione mail()

Diversi esempi di invio di un'e-mail utilizzando la funzione mail() di PHP sono mostrati in questa sezione del tutorial.

Esempio 1: inviare una semplice email di testo

Questo esempio mostra come inviare una semplice email di testo utilizzando la funzione mail(). Crea un file PHP con il seguente script.

Devi impostare un indirizzo email valido per $a variabile per ottenere l'output del seguente script. Un testo semplice è impostato come corpo del messaggio.

//Imposta l'indirizzo email del destinatario
$to = "[email protetta]";
//Imposta l'oggetto dell'email
$subject = "E' un'email di prova";
//Imposta il corpo dell'email
$message = "Sta testando il corpo dell'email";
//Imposta le informazioni di intestazione
$headers = "Da: [email protetta]\r\n";
$intestazioni .= "Rispondi a: [email protetta]\r\n";
//Invia e-mail utilizzando la funzione message mail()
if(mail($to,$oggetto,$messaggio,$intestazione))

echo "L'email è stata inviata con successo.\r\n";

altro
echo "L'email non è stata inviata.
";

?>

Il seguente output apparirà dopo aver eseguito lo script dal server web se la funzione mail() funziona correttamente.


Il seguente output apparirà se controlli la posta in arrivo dell'indirizzo email che è stato impostato come indirizzo email del destinatario.

Esempio 2: inviare un'e-mail in formato HTML

Questo esempio mostra come inviare un'e-mail in formato HTML utilizzando la funzione mail(). Crea un file PHP con il seguente script.

$messaggio la variabile è inizializzata con contenuto HTML che verrà inviato come corpo dell'e-mail. È menzionato nel $header variabile che il contenuto dell'e-mail è HTML.

//Imposta l'indirizzo email del destinatario
$to = "[email protetta]";
//Imposta l'oggetto dell'email
$subject = 'Registrazione riuscita';
//Imposta il corpo dell'email
$messaggio = '

La tua registrazione è stata completata con successo.


nome utente = fahmida20

password = aswQ34ghqw


';
//Imposta il ritorno a capo
$nl = "\r\n";
//Imposta l'intestazione del tipo di contenuto
$headers = 'Versione MIME: 1.0'.$ nl;
$intestazioni .= 'Tipo di contenuto: text/html; set di caratteri=iso-8859-1'.$ nl;
//Imposta le informazioni aggiuntive sulle intestazioni
$header .= 'A: Mehrab Hossain'.$ nl;
$header .= 'Da: amministratore '.$ nl;
$header .= 'Cc: [email protetta]'.$ nl;
//Invia e-mail utilizzando la funzione message mail()
if(mail($to,$oggetto,$messaggio,$intestazioni))
echo "L'email è stata inviata con successo.\r\n";

altro
echo "L'email non è stata inviata. \r\n";

?>

Il seguente output apparirà dopo aver eseguito lo script dal server web se la funzione mail() funziona correttamente.


Il seguente output apparirà se controlli la posta in arrivo dell'indirizzo e-mail che è stato impostato come indirizzo e-mail del destinatario.

Esempio 3: inviare un'e-mail con l'allegato

Questo esempio mostra come inviare un'e-mail allegando un file di testo. Crea un file di testo con il seguente script.

Il contenuto del file di testo viene letto e codificato prima dell'allegato e la funzione md5() viene utilizzata nello script per generare un numero casuale per il contenuto misto. Tutte le informazioni necessarie vengono aggiunte in $header e $messaggio variabili prima di inviare l'e-mail.

//Imposta l'indirizzo email del destinatario
$to = "[email protetta]";
//Imposta l'oggetto dell'email
$subject = "File allegato";
//Imposta il ritorno a capo
$nl = "\r\n";
//Imposta un hash casuale che verrà utilizzato per i contenuti misti
$separatore = md5(tempo());
//Leggi il contenuto del file allegato
$nomefile = 'miofile.TXT';
$contenuto = file_get_contents($nomefile);
$contenuto = chunk_split(base64_encode($contenuto));
//Imposta il messaggio di posta elettronica con le informazioni sull'allegato
$messaggio = "--" . $separatore . $ nl;
$messaggio .= "Tipo di contenuto: text/plain; charset="iso-8859-1"" . $ nl;
$messaggio .= "Content-Transfer-Codifica: 8bit" . $ nl;
$messaggio .= "Un file di testo è allegato all'e-mail." . $ nl;
$messaggio .= "--" . $separatore . $ nl;
$messaggio .= "Tipo di contenuto: application/octet-stream; name="" . $nomefile . """ . $ nl;
$messaggio .= "Contenuto-Trasferimento-Codifica: base64" . $ nl;
$messaggio .= "Contenuto-Disposizione: allegato" . $ nl;
$messaggio .= $contenuto . $ nl;
$messaggio .= "--" . $separatore . "--";
//Imposta l'intestazione del tipo di contenuto
$headers = 'Versione MIME: 1.0'.$ nl;
$header .= "Da: [email protetta]".$ nl;
$intestazioni .= "Rispondi a: [email protetta]".$ nl;
$header .= "Tipo di contenuto: multiparte/misto; confine="" . $separatore . """ .$ nl;
//Invia e-mail utilizzando la funzione message mail()
if(mail($to,$oggetto,$messaggio,$intestazioni))
echo "L'email è stata inviata con allegato con successo.\r\n";

altro
echo "L'email non è stata inviata. \r\n";

?>

Il seguente output apparirà dopo aver eseguito lo script dal server web se la funzione mail() funziona correttamente.


Il seguente output apparirà se controlli la posta in arrivo dell'indirizzo e-mail che è stato impostato come indirizzo e-mail del destinatario.

Conclusione

Esistono molti modi in PHP per inviare e-mail. La funzione PHP mail() non funziona correttamente su Ubuntu dopo aver impostato la configurazione. Questo tutorial mostra le configurazioni necessarie e il modo di inviare e-mail utilizzando la funzione PHP mail().

I migliori emulatori di console di gioco per Linux
Questo articolo elencherà il popolare software di emulazione della console di gioco disponibile per Linux. L'emulazione è un livello di compatibilità ...
Le migliori distribuzioni Linux per il gioco nel 2021
Il sistema operativo Linux ha fatto molta strada dal suo aspetto originale, semplice e basato su server. Questo sistema operativo è notevolmente migli...
Come acquisire e riprodurre in streaming la tua sessione di gioco su Linux
In passato, giocare era considerato solo un hobby, ma con il tempo l'industria dei giochi ha visto una crescita enorme in termini di tecnologia e nume...