Funktionen mail () er en indbygget PHP-funktion, der bruges til at sende e-mail fra localhost. Men nogle konfigurationer er nødvendige for at sende e-mail ved hjælp af denne funktion. Du har brug for de rigtige mailserveroplysninger for at konfigurere konfigurationen. Du kan bruge mailserveroplysningerne på din aktive hosting-server, eller du kan bruge alle gratis mailserveroplysninger. En Gmail-konto og SMTP-serveroplysningerne i Gmail bruges i denne vejledning til at sende e-mail ved hjælp af funktionen mail ().
Opsætningskonfiguration
To filer skal ændres for at konfigurere konfigurationen: php.ini fil og en anden fil kræves for at konfigurere til opsætning af mailserveren. Følg nedenstående trin for at konfigurere konfigurationen. Mange pakker er tilgængelige i PHP til afsendelse af en e-mail. msmtp er en PHP-mailserverklient, der bruges i denne tutorial til at sende e-mail ved hjælp af PHP mail () -funktionen.
Trin:
Kør følgende kommando for at installere msmtp pakke på Ubuntu for at opsætte mailserveren:
$ sudo apt-get install msmtpOpret en konfigurationsfil med den navngivne / etc / msmtprc med følgende kommando:
$ sudo nano / etc / msmtprcFøj følgende indhold til filen. Tilføj den gyldige e-mail-adresse til bruger og den gyldige adgangskode til adgangskode der bruges til at sende en e-mail. Indstil afsenderens e-mail-adresse til form værdi.
standardindstillingertls på
tls_starttls til
tls_trust_file / etc / ssl / certs / ca-certifikater.crt
konto standard
vært smtp.gmail.com
havn 587
godkend
bruger brugernavn @ gmail.com
adgangskode user_password
fra sender_email_adresse
Kør følgende kommandoer for at indstille ejerskabet og tilladelsen til / etc / msmtprc-fil:
$ sudo chown fahmida / etc / msmtprc$ sudo chmod 0600 / etc / msmtprc
Åbn php.ini fil og rediger følgende indhold med følgende værdier:
SMTP = smtp.gmail.comsmtp_port = 587
sendmail_path = "/ usr / bin / msmtp -t -i"
Syntaks:
bool mail (streng $ til, streng $ emne, streng $ besked [, blandet $ ekstra_hoved [, streng $ ekstra_parametre]])Denne funktion kan tage fire argumenter. Det første argument tager modtagerens e-mail-adresse. Det andet argument tager emnet for e-mailen. Det tredje argument tager e-mail-kroppen. Det sidste argument er valgfrit, og det indeholder yderligere oplysninger om e-mailen som en streng eller en matrix.
Afsendelse af e-mail ved hjælp af mail () -funktionen
Forskellige eksempler på at sende en e-mail ved hjælp af mail () -funktionen i PHP vises i dette afsnit af selvstudiet.
Eksempel 1: Send en simpel e-mail med tekst
Dette eksempel viser, hvordan en simpel tekst-e-mail kan sendes ved hjælp af funktionen mail (). Opret en PHP-fil med følgende script.
Du skal indstille en gyldig e-mail-adresse til $ til variabel for at få output fra følgende script. En simpel tekst indstilles som en meddelelsestekst.
// Indstil modtagerens e-mail-adresse$ to = "[email protected]";
// Indstil emnet for e-mailen
$ subject = "Det er en test-e-mail";
// Indstil e-mail-kroppen
$ message = "Det tester e-mail-organet";
// Indstil headeroplysninger
$ headers = "Fra: [email protected] \ r \ n";
$ overskrifter .= "Svar til: [e-mail-beskyttet] \ r \ n";
// Send e-mail ved hjælp af besked mail () funktion
hvis (mail ($ til, $ emne, $ besked, $ overskrifter))
ekko "E-mail er sendt.\ r \ n ";
andet
ekko "E-mail er ikke sendt.
";
?>
Følgende output vises efter kørsel af scriptet fra webserveren, hvis mail () -funktionen fungerer korrekt.
Følgende output vises, hvis du tjekker indbakken for den e-mail-adresse, der er indstillet som modtagerens e-mail-adresse.
Eksempel 2: Send en HTML-formateret e-mail
Dette eksempel viser, hvordan en HTML-formateret e-mail kan sendes ved hjælp af mail () -funktionen. Opret en PHP-fil med følgende script.
$ besked variabel initialiseres med HTML-indhold, der sendes som en e-mail-instans. Det er nævnt i $ header variabel, at indholdet af e-mailen er HTML.
// Indstil modtagerens e-mail-adresse$ to = "[email protected]";
// Indstil emnet for e-mailen
$ subject = 'Registrering lykkedes';
// Indstil e-mail-kroppen
$ besked = '
Din registrering er gennemført.
brugernavn = fahmida20
adgangskode = aswQ34ghqw
';
// Indstil vognretur
$ nl = "\ r \ n";
// Indstil indholdstypeoverskrift
$ headers = 'MIME-version: 1.0 '.$ nl;
$ overskrifter .= 'Indholdstype: tekst / html; charset = iso-8859-1 '.$ nl;
// Indstil de yderligere overskriftsoplysninger
$ overskrifter .= 'Til: Mehrab Hossain'.$ nl;
$ overskrifter .= 'Fra: Admin'.$ nl;
$ overskrifter .= 'Cc: [email protected]'.$ nl;
// Send e-mail ved hjælp af besked mail () funktion
hvis (mail ($ til, $ emne, $ besked, $ overskrifter))
ekko "E-mail er sendt med succes.\ r \ n ";
andet
ekko "E-mail er ikke sendt. \ r \ n ";
?>
Følgende output vises efter kørsel af scriptet fra webserveren, hvis funktionen mail () fungerer korrekt.
Følgende output vises, hvis du tjekker indbakken for den e-mail-adresse, der er indstillet som modtagerens e-mail-adresse.
Eksempel 3: Send en e-mail med vedhæftet fil
Dette eksempel viser, hvordan en e-mail kan sendes ved at vedhæfte en tekstfil. Opret en tekstfil med følgende script.
Indholdet af tekstfilen læses og kodes før vedhæftning, og funktionen md5 () bruges i scriptet til at generere et tilfældigt tal til blandet indhold. Alle nødvendige oplysninger tilføjes i $ overskrifter og $ besked variabler inden afsendelse af e-mailen.
// Indstil modtagerens e-mail-adresse$ to = "[email protected]";
// Indstil emnet for e-mailen
$ subject = "Filvedhæftning";
// Indstil vognretur
$ nl = "\ r \ n";
// Indstil en tilfældig hash, der skal bruges til blandet indhold
$ separator = md5 (tid ());
// Læs indholdet af den vedhæftede fil
$ filnavn = 'myfile.txt ';
$ indhold = file_get_contents ($ filnavn);
$ indhold = chunk_split (base64_encode ($ indhold));
// Indstil e-mail-beskeden med vedhæftede oplysninger
$ message = "-" . $ separator . $ nl;
$ besked .= "Content-Type: text / plain; charset =" iso-8859-1 "" . $ nl;
$ besked .= "Indholdsoverførsel-kodning: 8bit" . $ nl;
$ besked .= "Der er vedhæftet en tekstfil med e-mailen." . $ nl;
$ besked .= "-" . $ separator . $ nl;
$ besked .= "Content-Type: application / octet-stream; name =" " . $ filnavn . "" " . $ nl;
$ besked .= "Indhold-overførsel-kodning: base64" . $ nl;
$ besked .= "Indholdsdisponering: vedhæftet fil" . $ nl;
$ besked .= $ indhold . $ nl;
$ besked .= "-" . $ separator . "-";
// Indstil indholdstypeoverskrift
$ headers = 'MIME-version: 1.0 '.$ nl;
$ overskrifter .= "Fra: [email protected]".$ nl;
$ overskrifter .= "Svar til: [e-mail-beskyttet]".$ nl;
$ overskrifter .= "Content-Type: multipart / mixed; boundary =" " . $ separator . "" " .$ nl;
// Send e-mail ved hjælp af besked mail () funktion
hvis (mail ($ til, $ emne, $ besked, $ overskrifter))
ekko "E-mail er sendt med vedhæftet fil med succes.\ r \ n ";
andet
ekko "E-mail er ikke sendt. \ r \ n ";
?>
Følgende output vises efter kørsel af scriptet fra webserveren, hvis mail () -funktionen fungerer korrekt.
Følgende output vises, hvis du markerer indbakken for den e-mail-adresse, der er indstillet som modtagerens e-mail-adresse.
Konklusion
Der findes mange måder i PHP til at sende e-mails. PHP mail () -funktionen fungerer ikke korrekt på Ubuntu efter indstilling af konfigurationen. Denne tutorial viser de nødvendige konfigurationer og måden at sende e-mails ved hjælp af PHP mail () -funktionen.