php

Gebruik van de functie mail() in PHP op Ubuntu

Gebruik van de functie mail() in PHP op Ubuntu

De functie mail() is een ingebouwde PHP-functie die wordt gebruikt om e-mail te verzenden vanaf de localhost. Maar sommige configuraties zijn vereist om e-mail te verzenden met deze functie. U hebt de echte e-mailserverinformatie nodig voor het instellen van de configuratie. U kunt de mailserverinformatie van uw actieve hostingserver gebruiken, of u kunt alle gratis mailserverinformatie gebruiken. Een Gmail-account en de SMTP-serverinformatie van Gmail worden in deze tutorial gebruikt om e-mail te verzenden met de functie mail()).

Configuratie configureren

Er zijn twee bestanden nodig om te wijzigen om de configuratie in te stellen: de php.ini bestand en een ander bestand is vereist om te configureren om de mailserver in te stellen. Volg de onderstaande stappen om de configuratie in te stellen. Veel pakketten zijn beschikbaar in PHP voor het verzenden van een e-mail. msmtp is een PHP-mailserverclient die in deze tutorial wordt gebruikt om e-mail te verzenden met de functie PHP mail()).

Stappen:

Voer de volgende opdracht uit om de . te installeren msmtp pakket op Ubuntu om de mailserver in te stellen:

$ sudo apt-get install msmtp

Maak een configuratiebestand met de naam /etc/msmtprc met de volgende opdracht:

$ sudo nano /etc/msmtprc

Voeg de volgende inhoud toe aan het bestand:. Voeg het geldige e-mailadres toe voor de gebruiker en het geldige wachtwoord voor de wachtwoord die zal worden gebruikt om een ​​e-mail te verzenden. Stel het e-mailadres van de afzender in voor: het formulier waarde.

standaardinstellingen
tls aan
tls_starttls aan
tls_trust_file /etc/ssl/certs/ca-certificaten.crt
account standaard
host smtp.gmail.com
poort 587
autorisatie aan
gebruiker [email protected]
wachtwoord gebruiker_wachtwoord
van afzender_email_adres

Voer de volgende opdrachten uit om het eigendom en de toestemming in te stellen voor: /etc/msmtprc-bestand:

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

Open de php.ini bestand en wijzig de volgende inhoud met de volgende waarden:

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

Syntaxis:

bool mail (string $to, string $subject, string $message [, gemengde $additional_headers [, string $additional_parameters]])

Deze functie kan vier argumenten aannemen. Het eerste argument is het e-mailadres van de ontvanger. Het tweede argument heeft het onderwerp van de e-mail. Het derde argument neemt de body van de e-mail. Het laatste argument is optioneel en bevat aanvullende informatie van de e-mail als een string of een array.

E-mail verzenden met de functie mail()

Verschillende voorbeelden van het verzenden van een e-mail met de functie mail() van PHP worden in dit gedeelte van de zelfstudie getoond shown.

Voorbeeld 1: Stuur een eenvoudige tekst-e-mail

Dit voorbeeld laat zien hoe een eenvoudige tekst-e-mail kan worden verzonden met de functie mail(). Maak een PHP-bestand met het volgende script:.

U moet een geldig e-mailadres instellen voor: $naar variabele om de uitvoer van het volgende script te krijgen. Een eenvoudige tekst wordt ingesteld als berichttekst.

//Stel het e-mailadres van de ontvanger in
$to = "[e-mail beveiligd]";
//Stel het onderwerp van de e-mail in
$subject = "Het is een testmail";
//Stel de hoofdtekst van de e-mail in
$message = "Het is de body van de e-mail aan het testen";
//Stel de koptekstinformatie in
$headers = "Van: [e-mail beveiligd]\r\n";
$headers .= "Antwoord aan: [e-mail beveiligd]\r\n";
// E-mail verzenden met de functie message mail ()
if(mail($to,$subject,$message,$headers))

echo "E-mail is succesvol verzonden.\r\n";

anders
echo "E-mail is niet verzonden.
";

?>

De volgende uitvoer zal verschijnen na het uitvoeren van het script vanaf de webserver als de mail()-functie correct werkt:.


De volgende uitvoer zal verschijnen als u de inbox aanvinkt van het e-mailadres dat is ingesteld als het e-mailadres van de ontvanger:.

Voorbeeld 2: Stuur een HTML-geformatteerde e-mail

Dit voorbeeld laat zien hoe een HTML-geformatteerde e-mail kan worden verzonden met de functie mail(). Maak een PHP-bestand met het volgende script:.

$bericht variabele wordt geïnitialiseerd met HTML-inhoud die wordt verzonden als een e-mailtekst. Het wordt genoemd in de $header variabele dat de inhoud van de e-mail HTML is.

//Stel het e-mailadres van de ontvanger in
$to = "[e-mail beveiligd]";
//Stel het onderwerp van de e-mail in
$subject = 'Registratie geslaagd';
//Stel de e-mailtekst in
$bericht = '

Uw registratie is succesvol afgerond.


gebruikersnaam = fahmida20

wachtwoord = aswQ34ghqw


';
//Stel terugloop in
$nl = "\r\n";
//Stel de Content-type header in
$headers = 'MIME-versie: 1'.0'.$nl;
$headers .= 'Inhoudstype: tekst/html; tekenset=iso-8859-1'.$nl;
//Stel de extra koptekstinformatie in
$headers .= 'Aan: Mehrab Hossain'.$nl;
$headers .= 'Van: Beheerder'.$nl;
$headers .= 'Cc: [e-mail beveiligd]'.$nl;
// E-mail verzenden met de functie message mail ()
if(mail($to,$subject,$message,$headers))
echo "E-mail is succesvol verzonden.\r\n";

anders
echo "E-mail is niet verzonden. \r\n";

?>

De volgende uitvoer zal verschijnen na het uitvoeren van het script vanaf de webserver als de mail()-functie correct werkt:.


De volgende uitvoer zal verschijnen als u de inbox aanvinkt van het e-mailadres dat is ingesteld als het e-mailadres van de ontvanger:.

Voorbeeld 3: Stuur een e-mail met de bijlage

Dit voorbeeld laat zien hoe een e-mail kan worden verzonden door een tekstbestand bij te voegen. Maak een tekstbestand met het volgende script:.

De inhoud van het tekstbestand wordt gelezen en gecodeerd voordat het wordt toegevoegd en de functie md5() wordt in het script gebruikt om een ​​willekeurig getal te genereren voor gemengde inhoud. Alle benodigde informatie is toegevoegd in $headers en $bericht variabelen voordat u de e-mail verzendt.

//Stel het e-mailadres van de ontvanger in
$to = "[e-mail beveiligd]";
//Stel het onderwerp van de e-mail in
$subject = "Bestandsbijlage";
//Stel terugloop in
$nl = "\r\n";
//Stel een willekeurige hash in die zal worden gebruikt voor gemengde inhoud
$separator = md5(time());
//Lees de inhoud van het bijgevoegde bestand
$bestandsnaam = 'mijnbestand'.tekst';
$content = file_get_contents($bestandsnaam);
$content = chunk_split(base64_encode($content));
//Stel het e-mailbericht met bijlage-informatie in
$bericht = "--" . $scheidingsteken . $nl;
$bericht .= "Inhoudstype: tekst/plain; charset="iso-8859-1"" . $nl;
$bericht .= "Content-Transfer-Codering: 8bit" . $nl;
$bericht .= "Er is een tekstbestand bij de e-mail gevoegd." . $nl;
$bericht .= "--" . $scheidingsteken . $nl;
$bericht .= "Inhoudstype: applicatie/octet-stream; name="" . $bestandsnaam . """ . $nl;
$bericht .= "Content-Transfer-Codering: base64" . $nl;
$bericht .= "Content-Disposition: bijlage" . $nl;
$bericht .= $inhoud . $nl;
$bericht .= "--" . $scheidingsteken . "--";
//Stel de Content-type header in
$headers = 'MIME-versie: 1'.0'.$nl;
$headers .= "Van: [e-mail beveiligd]".$nl;
$headers .= "Antwoord aan: [e-mail beveiligd]".$nl;
$headers .= "Inhoudstype: meervoudig/gemengd; grens="" . $scheidingsteken . """ .$nl;
// E-mail verzenden met de functie message mail ()
if(mail($to,$subject,$message,$headers))
echo "E-mail is verzonden met bijlage succesvol.\r\n";

anders
echo "E-mail is niet verzonden. \r\n";

?>

De volgende uitvoer zal verschijnen na het uitvoeren van het script vanaf de webserver als de mail()-functie correct werkt:.


De volgende uitvoer zal verschijnen als u de inbox aanvinkt van het e-mailadres dat is ingesteld als het e-mailadres van de ontvanger:.

Conclusie

Er zijn veel manieren in PHP om e-mails te verzenden. De functie PHP mail() werkt niet goed op Ubuntu na het instellen van de configuratie. Deze tutorial toont de benodigde configuraties en de manier om e-mails te verzenden met behulp van de PHP mail()-functie.

Hoe een spel op Linux te ontwikkelen
Tien jaar geleden zouden niet veel Linux-gebruikers voorspellen dat hun favoriete besturingssysteem ooit een populair spelplatform voor commerciële vi...
Open source-poorten van commerciële game-engines
Gratis, open source en platformonafhankelijke game-engine-recreaties kunnen worden gebruikt om zowel oude als enkele van de vrij recente gametitels te...
Beste opdrachtregelspellen voor Linux
De opdrachtregel is niet alleen je grootste bondgenoot bij het gebruik van Linux, hij kan ook de bron van entertainment zijn omdat je hem kunt gebruik...