Mail () -funktionen är en inbyggd PHP-funktion som används för att skicka e-post från localhost. Men vissa konfigurationer krävs för att skicka e-post med den här funktionen. Du behöver den riktiga e-postserverinformationen för att konfigurera konfigurationen. Du kan använda e-postserverinformationen på din aktiva värdserver, eller så kan du använda all gratis e-postserverinformation. Ett Gmail-konto och SMTP-serverinformationen för Gmail används i den här självstudien för att skicka e-post med e-postfunktionen ().
Inställningskonfiguration
Två filer måste ändras för att konfigurera konfigurationen: php.ini fil och en annan fil krävs för att konfigurera för att konfigurera e-postservern. Följ stegen nedan för att ställa in konfigurationen. Många paket finns i PHP för att skicka ett e-postmeddelande. msmtp är en PHP-e-postserverklient som används i denna handledning för att skicka e-post med hjälp av PHP mail () -funktionen.
Steg:
Kör följande kommando för att installera msmtp paket på Ubuntu för att ställa in e-postservern:
$ sudo apt-get install msmtpSkapa en konfigurationsfil med namnet / etc / msmtprc med följande kommando:
$ sudo nano / etc / msmtprcLägg till följande innehåll i filen. Lägg till giltig e-postadress för användare och det giltiga lösenordet för Lösenord som kommer att användas för att skicka ett mejl. Ställ in avsändarens e-postadress för form värde.
standardvärdentls på
tls_starttls på
tls_trust_file / etc / ssl / certs / ca-certifikat.crt
kontostandard
värd smtp.gmail.com
port 587
autentisera på
användarnamn @ gmail.com
lösenord user_password
från avsändar-e-postadress
Kör följande kommandon för att ställa in äganderätten och behörigheten för / etc / msmtprc-fil:
$ sudo chown fahmida / etc / msmtprc$ sudo chmod 0600 / etc / msmtprc
Öppna php.ini fil och ändra följande innehåll med följande värden:
SMTP = smtp.gmail.comsmtp_port = 587
sendmail_path = "/ usr / bin / msmtp -t -i"
Syntax:
bool mail (sträng $ till, sträng $ ämne, sträng $ meddelande [, blandad $ ytterligare_huvud [, sträng $ ytterligare_parametrar]])Denna funktion kan ta fyra argument. Det första argumentet tar emot mottagarens e-postadress. Det andra argumentet tar föremålet för e-postmeddelandet. Det tredje argumentet tar e-postadressen. Det sista argumentet är valfritt och det innehåller ytterligare information om e-postmeddelandet som en sträng eller en matris.
Skicka e-post med e-post () -funktionen
Olika exempel på att skicka ett e-postmeddelande med e-postfunktionen () i PHP visas i det här avsnittet i handledningen.
Exempel 1: Skicka ett enkelt textmeddelande
Det här exemplet visar hur ett enkelt text-e-postmeddelande kan skickas med funktionen mail (). Skapa en PHP-fil med följande skript.
Du måste ange en giltig e-postadress för $ till variabel för att få utdata från följande skript. En enkel text ställs in som ett meddelandetext.
// Ställ in mottagarens e-postadress$ to = "[email protected]";
// Ställ in ämnet för e-postmeddelandet
$ subject = "Det är ett test-e-postmeddelande";
// Ställ in e-postadressen
$ message = "Det testar e-postkroppen";
// Ställ in rubrikinformation
$ headers = "Från: [email protected] \ r \ n";
$ headers .= "Svara till: [e-postskyddad] \ r \ n";
// Skicka e-post med funktionen e-post ()
if (mail ($ to, $ subject, $ message, $ headers))
echo "E-postmeddelandet har skickats.\ r \ n ";
annan
eko "E-post har inte skickats.
";
?>
Följande utdata visas när man kört skriptet från webbservern om e-postfunktionen () fungerar korrekt.
Följande utdata visas om du markerar inkorgen för e-postadressen som har ställts in som mottagarens e-postadress.
Exempel 2: Skicka ett HTML-formaterat e-postmeddelande
Detta exempel visar hur ett HTML-formaterat e-postmeddelande kan skickas med e-post () -funktionen. Skapa en PHP-fil med följande skript.
$ meddelande variabel initieras med HTML-innehåll som skickas som en e-postadress. Det nämns i $ header variabel att innehållet i e-postmeddelandet är HTML.
// Ställ in mottagarens e-postadress$ to = "[email protected]";
// Ställ in ämnet för e-postmeddelandet
$ subject = 'Registrering lyckades';
// Ställ in e-postadressen
$ meddelande = '
Din registrering är klar.
användarnamn = fahmida20
lösenord = aswQ34ghqw
';
// Ställ in vagnretur
$ nl = "\ r \ n";
// Ställ in innehållstypsrubriken
$ headers = 'MIME-version: 1.0 '.$ nl;
$ headers .= 'Innehållstyp: text / html; charset = iso-8859-1 '.$ nl;
// Ställ in ytterligare rubrikinformation
$ headers .= 'Till: Mehrab Hossain'.$ nl;
$ headers .= 'Från: Admin'.$ nl;
$ headers .= 'Cc: [email protected]'.$ nl;
// Skicka e-post med funktionen e-post ()
if (mail ($ to, $ subject, $ message, $ headers))
echo "E-postmeddelandet har skickats.\ r \ n ";
annan
eko "E-post har inte skickats. \ r \ n ";
?>
Följande utdata visas när man kört skriptet från webbservern om e-postfunktionen () fungerar korrekt.
Följande utdata visas om du markerar inkorgen för e-postadressen som har ställts in som mottagarens e-postadress.
Exempel 3: Skicka ett e-postmeddelande med bilagan
Det här exemplet visar hur ett e-postmeddelande kan skickas genom att bifoga en textfil. Skapa en textfil med följande skript.
Innehållet i textfilen läses och kodas före bifogning och funktionen md5 () används i skriptet för att generera ett slumpmässigt tal för blandat innehåll. All nödvändig information läggs till i $ headers och $ meddelande variabler innan du skickar e-postmeddelandet.
// Ställ in mottagarens e-postadress$ to = "[email protected]";
// Ställ in ämnet för e-postmeddelandet
$ subject = "File Attachment";
// Ställ in vagnretur
$ nl = "\ r \ n";
// Ställ in en slumpmässig hash som ska användas för blandat innehåll
$ separator = md5 (tid ());
// Läs innehållet i den bifogade filen
$ filnamn = 'minfil.Text';
$ content = file_get_contents ($ filnamn);
$ content = chunk_split (base64_encode ($ content));
// Ställ in e-postmeddelandet med information om bilagor
$ message = "-" . $ separator . $ nl;
$ meddelande .= "Content-Type: text / plain; charset =" iso-8859-1 "" . $ nl;
$ meddelande .= "Innehållsöverföring-kodning: 8bit" . $ nl;
$ meddelande .= "En textfil bifogas e-postmeddelandet." . $ nl;
$ meddelande .= "-" . $ separator . $ nl;
$ meddelande .= "Content-Type: application / octet-stream; name =" " . $ filnamn . "" " . $ nl;
$ meddelande .= "Innehållsöverföring-kodning: base64" . $ nl;
$ meddelande .= "Content-Disposition: attachment" . $ nl;
$ meddelande .= $ innehåll . $ nl;
$ meddelande .= "-" . $ separator . "-";
// Ställ in innehållstypsrubriken
$ headers = 'MIME-version: 1.0 '.$ nl;
$ headers .= "Från: [email protected]".$ nl;
$ headers .= "Svara till: [e-postskyddad]".$ nl;
$ headers .= "Content-Type: multipart / mixed; boundary =" " . $ separator . "" " .$ nl;
// Skicka e-post med funktionen e-post ()
if (mail ($ to, $ subject, $ message, $ headers))
echo "E-postmeddelandet har skickats med bilagan framgångsrikt.\ r \ n ";
annan
eko "E-post har inte skickats. \ r \ n ";
?>
Följande utdata visas efter att man kört skriptet från webbservern om e-postfunktionen () fungerar korrekt.
Följande utdata visas om du markerar inkorgen för e-postadressen som har ställts in som mottagarens e-postadress.
Slutsats
Det finns många sätt att skicka e-post i PHP i PHP. PHP mail () -funktionen fungerar inte korrekt på Ubuntu efter att konfigurationen har ställts in. Denna handledning visar de nödvändiga konfigurationerna och sättet att skicka e-postmeddelanden med hjälp av PHP mail () -funktionen.