Hur kan jag använda mail med php?

~ 0 min
2023-12-02 09:04

Vi rekommenderar att man använder SMTP för att skicka mail, och anledningen till det är att man då skickar e-post genom att autentisera sig och att då brevet tydligt kommer från en korrekt avsändare, och också i regel DKIM signerat.

Den inbyggda mail() funktionen i php använder programmet sendmail för att skicka e-post. Detta skickas då från www servern och som verklig avsändare kommer mottagaren att se själva servern, oavsett vad ni satt som From adress.

Även om det fungerar att skicka e-post, använder många e-postleverantörer, som Gmail, Outlook och andra, en mängd olika verktyg för att minska e-postspam. Dessa verktyg försöker upptäcka att ett e-postmeddelande verkligen kommer från den plats som det påstår sig vara plus flera ytterligare tester.

E-postmeddelanden som skickas via php's inbyggda mail() funktion misslyckas ofta i dessa test.

Detta innebär att när ett e-postmeddelande skickas ut från din webbplats (kontaktformulärplugin, adminavisering, etc), kanske det inte ens hamnar i mottagarens skräppostmapp, än mindre i inkorgen.

Det absolut bästa är att använda SMTP för att skicka mail med php. Ett enkelt sätt att göra det är att använda GitHub - PHPMailer/PHPMailer: The classic email sending library for PHP. Denna installerar ni enkelt på er hemsida.

För att skicka mail med SMTP med PHPMailer behöver ni först skapa ett e-postkonto på er mailserver, typ smtp@foo.com. Detta skapar ni med ett bra lösenord.

När ni sedan kodar i php använder ni följande för PHPMailer:

    $mail = new PHPMailer\PHPMailer();
    $mail->IsSMTP();
    $mail->Host = $SMTP['smtp_host_name'];
    $mail->Hostname = $SMTP['smtp_host_name'];
    $mail->Port = 587;
    $mail->SMTPSecure = 'tls';
    $mail->SMTPAuth = true;
    $mail->Username = $SMTP['smtp_user_name'];
    $mail->Password = $SMTP['smtp_user_pw'];
    $mail->Sender = $SMTP['smtp_user_name'];

Där $SMTP['smtp_user_name'] är smtp@foo.com i exemplet och $SMTP['smtp_user_pw'] dess lösenord. Där $SMTP['smtp_host_name'] är er e-postserver.

 

Resultat av röstning: 5 (1 röst)

Du kan inte kommentera den här frågan