Hur man skickar e-post med PHP mail()-funktionen
Vad är PHP-e-post?
PHP mail är den inbyggda PHP-funktionen som används för att skicka e-post från PHP-skript.
E-postfunktionen accepterar följande parametrar:
- E-postadress
- Ämne
- Meddelande
- CC eller BC e-postadresser
- Det är ett kostnadseffektivt sätt att meddela användare om viktiga händelser.
- Låt användare kontakta dig via e-post genom att tillhandahålla ett kontaktformulär på webbplatsen som e-postar det tillhandahållna innehållet.
- Utvecklare kan använda den för att ta emot systemfel via e-post
- Du kan använda den för att skicka e-post till dina prenumeranter på nyhetsbrevet.
- Du kan använda den för att skicka länkar för återställning av lösenord till användare som glömmer sina lösenord
- Du kan använda den för att skicka aktiverings-/bekräftelselänkar via e-post. Detta är användbart när du registrerar användare och verifierar deras e-postadresser
Varför/när ska man använda e-posten PHP
Skickar e-post med PHP
PHP-e-postfunktionen har följande grundläggande syntax
<?php mail($to_email_address,$subject,$message,[$headers],[$parameters]); ?>
HÄR,
- "$to_email_address" är e-postadressen till e-postmottagaren
- "$subject" är e-postämnet
- "$meddelande" är meddelandet som ska skickas.
- "[$headers]" är valfritt, det kan användas för att inkludera information som CC, BCC
- CC är akronymen för karbonkopia. Den används när du vill skicka en kopia till en intresserad person, dvs ett reklamationsmail som skickas till ett företag kan också skickas som CC till reklamationsnämnden.
- BCC är akronymen för blind karbonkopia. Det liknar CC. E-postadresserna som ingår i avsnittet BCC kommer inte att visas för de andra mottagarna.
Enkelt Mail Transmission Protokoll (SMTP)
PHP mailer använder Simple Mail Transmission Protokoll (SMTP) för att skicka e-post.
På en värdserver skulle SMTP-inställningarna redan ha ställts in.
SMTP-e-postinställningarna kan konfigureras från filen "php.ini" i PHP-installationsmappen.
Konfigurera SMTP-inställningar på din lokala värd Förutsatt att du använder xampp på Windows, leta upp "php.ini" i katalogen "C:\xampp\php".
- Öppna den med anteckningsblock eller någon textredigerare. Vi kommer att använda anteckningar i det här exemplet. Klicka på redigeringsmenyn
- Klicka på menyn Hitta…
- Menyn för sökdialog visas
- Klicka på knappen Hitta nästa
- Leta upp posterna
- [e-postfunktion]
- ; XAMPP: Ta inte bort halvkolumnen om du vill arbeta med en SMTP-server som Mercury
- ; SMTP = lokal värd
- ; smtp_port = 25
- Ta bort semikolon före SMTP och smtp_port och ställ in SMTP till din smtp-server och porten till din smtp-port. Dina inställningar bör se ut som följer
- SMTP = smtp.example.com
- smtp_port = 25
- Anmärkningar SMTP-inställningarna kan fås från dina webbhotellleverantörer.
- Om servern kräver autentisering lägger du till följande rader.
- auth_username = exempel_användarnamn@example.com
- auth_password = exempel_lösenord
- Spara de nya ändringarna.
- Omstart Apache servern.
PHP Mail Exempelvis
Låt oss nu titta på ett exempel som skickar ett enkelt mail.
<?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); ?>
Produktion:
Notera: exemplet ovan tar bara de 4 obligatoriska parametrarna.
Du bör ersätta ovanstående fiktiva e-postadress med en riktig e-postadress.
Sanering av e-postanvändarinmatningar
Ovanstående exempel använder hårdkodade värden i källkoden för e-postadressen och andra detaljer för enkelhetens skull.
Låt oss anta att du måste skapa ett kontaktformulär för att användarna ska fylla i uppgifterna och sedan skicka in.
- Användare kan av misstag eller avsiktligt injicera kod i rubrikerna vilket kan resultera i att skräppost skickas
- För att skydda ditt system från sådana attacker kan du skapa en anpassad funktion som rensar och validerar värdena innan posten skickas.
Låt oss skapa en anpassad funktion som validerar och rengör e-postadressen med den inbyggda filter_var-funktionen.
Filter_var-funktionen Filter_var-funktionen används för att sanera och validera användarens indata.
Den har följande grundläggande syntax.
<?php filter_var($field, SANITIZATION TYPE); ?>
HÄR,
- "filter_var(...)" är validerings- och saneringsfunktionen
- "$field" är värdet på fältet som ska filtreras.
- "SANITISERINGSTYP" är den typ av desinficering som ska utföras på fältet, såsom;
- FILTER_VALIDATE_EMAIL – det returnerar sant för giltiga e-postadresser och falskt för ogiltiga e-postadresser.
- FILTER_SANITIZE_EMAIL – det tar bort olagliga tecken från e-postadresser. info\@domain.(com) returnerar info@domain.com.
- FILTER_SANITIZE_URL – det tar bort olagliga tecken från webbadresser. http://www.example@.comé returnerar >http://www.example@.com
- FILTER_SANITIZE_STRING – det tar bort taggar från strängvärden. am bold blir am bold.
Koden nedan implementerar använder en anpassad funktion för att skicka säker e-post.
<?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"; } ?>
Produktion:
Säkra Mail
E-postmeddelanden kan fångas upp under överföring av oavsiktliga mottagare.
Detta kan exponera innehållet i e-postmeddelandet för oavsiktliga mottagare.
Säker e-post löser detta problem genom att skicka e-postmeddelanden via Hypertext Transfer Protocol Secure (HTTPS).
HTTPS krypterar meddelanden innan de skickas.
Sammanfattning
- Smakämnen PHP inbyggd funktion mail() används för att skicka e-post från PHP-skript
- Validering och saneringskontroller av data är viktiga för att skicka säker post
- Den inbyggda PHP-funktionen filter_var() ger ett lättanvänt och effektivt sätt att utföra datasanering och validering