Hur kan jag använda mail med php?
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.