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

Enkelt Mail Transmission Protokoll

  • Klicka på menyn Hitta…

Enkelt Mail Transmission Protokoll

  • Menyn för sökdialog visas

Enkelt Mail Transmission Protokoll

  • Klicka på knappen Hitta nästa

Enkelt Mail Transmission Protokoll

  • 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:

Enkelt Mail Transmission Protokoll

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:

Sanering av e-postanvändarinmatningar

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