Hur man skickar e-post från ett PHP-skript med SMTP-autentisering

Innehållsförteckning:

Hur man skickar e-post från ett PHP-skript med SMTP-autentisering
Hur man skickar e-post från ett PHP-skript med SMTP-autentisering
Anonim

Vad att veta

  • PHP klass alternativ: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
  • PEAR Mail: Notera e-postserverns namn > kontrollera att PEAR Mail är installerat > ändra PHP-fil med hjälp av givna exempel.

Den här artikeln förklarar hur man använder SMTP-autentisering för att skicka e-post med PHP mail()-funktionen i PEAR Mail.

Skicka e-post med PHP Mail-funktionen

När du använder PHP-funktionen mail() skickar du e-post direkt från din webbserver istället för från din e-postserver. Om du har en e-postserver via ditt webbhotell, eller till och med en e-postserver med en annan värd, är det vanligtvis bättre att skicka e-post via den istället.

Problemet är att PHP mail()-funktionen inte tillhandahåller något inbyggt sätt att skicka e-post via SMTP. Om du vill öppna den funktionen måste du installera en extra PHP-klass.

Här är några alternativ som fungerar:

  • PHPmailer
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • PEAR Mail

Vi visar dig hur du använder PEAR Mail, men du kan använda vilken klass som helst som stöder SMTP.

Image
Image

Om din webbvärd redan har en eller flera av dessa klasser installerade, har den förmodligen handledningar som hänför sig till din situation. Om så är fallet, fortsätt och använd klassen som du har tillgång till.

Använd endast den här metoden om du använder PHP för att skapa dina egna anpassade e-postformulär. Om du använder ett innehållshanteringssystem (CMS) som WordPress, leta efter ett plugin eller inbyggd funktion för att skicka e-post via SMTP, istället för att försöka skapa din egen.

Hur man använder PEAR för att skicka e-post via SMTP

  1. Se till att din domän pekar mot MX-posterna för din e-postservervärd och notera ditt e-postservernamn. Det kan till exempel vara mail.yourdomain.net eller smtp.yourdomain.net.
  2. Kontrollera om PEAR Mail redan är installerat på din e-postserver.
  3. Om PEAR Mail inte är installerat, kontakta din webbpostvärd för specifika instruktioner för att installera det.
  4. När PEAR Mail har installerats, ändra en av PHP-exemplen i följande avsnitt för att passa dina behov.

Exempel PEAR Mail PHP-skript för SMTP Mail

Du kan skapa ditt eget manus från början om du vill, eller modifiera följande exempel efter eget tycke. Se till att ange ditt webbmailservernamn i värdvariabeln och använd din inloggningsinformation för din webbpostvärd i användarnamns- och lösenordsfälten.

require_once "Mail.php";

$from="Avsändarens namn ";

$to="Mottagarens namn ";

$subject=" Ämnesrad här: ";

$body=" alla meddelanden du vill ha ";

$host="yourmailhost.com";

$username="ditt användarnamn eller e-post"; $password="ditt lösenord";

$headers=array ('From'=> $from, 'To'=> $to, 'Subject'=> $subject);

$smtp=Mail::factory('smtp', array ('host'=> $host, 'auth'=> true, 'username'=> $användarnamn, 'password'=> $password));

$mail=$smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {

echo("

". $mail->getMessage()."

);

} annars {echo("

Meddelande har skickats!

);}

Exempel PEAR Mail PHP-skript för SMTP-autentisering och SSL-kryptering

Om du vill använda SMTP-autentisering och SSL-kryptering måste du göra några ändringar i föregående exempel. Du måste peka värdvariabeln till din SSL-e-postserver och även ange ett portnummer som 25, 465, 587, 2525 eller 8025. Kontakta din webbpostvärd för mer information om du inte kan ta reda på vilken port du ska använd.

require_once "Mail.php";

$from="Avsändarens namn ";

$to="Mottagarens namn ";

$subject=" Ämnesrad här: ";

$body=" vilket meddelande du vill ha ";

$host="ssl://yourmailhost.com";

$port="587"; $username="ditt användarnamn eller e-post";

$password="ditt lösenord";

$headers=array ('Från'=> $from, ' To'=> $to, 'Subject'=> $subject);

$smtp=Mail::factory('smtp', array ('host'=>) $host, 'port'=> $port, 'auth'=> true, 'användarnamn'=> $användarnamn, 'lösenord'=> $password));

$mail=$smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {

echo("

". $mail->getMessage()."

);

} annars {echo("

Meddelande har skickats!

);}

Rekommenderad: