Kako poslati e-pošto iz skripta PHP z uporabo avtentikacije SMTP

Kazalo:

Kako poslati e-pošto iz skripta PHP z uporabo avtentikacije SMTP
Kako poslati e-pošto iz skripta PHP z uporabo avtentikacije SMTP
Anonim

Kaj morate vedeti

  • Možnosti razreda PHP: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
  • PEAR Mail: Upoštevajte ime poštnega strežnika > preverite, ali je PEAR Mail nameščen > spremenite datoteko PHP z danimi primeri.

Ta članek pojasnjuje, kako uporabiti avtentikacijo SMTP za pošiljanje e-pošte s funkcijo PHP mail() v PEAR Mail.

Pošiljanje e-pošte s funkcijo PHP Mail

Ko uporabljate funkcijo PHP mail(), pošljete e-pošto neposredno iz spletnega strežnika in ne iz poštnega strežnika. Če imate poštni strežnik prek spletnega gostitelja ali celo poštni strežnik z drugim gostiteljem, je običajno bolje, da pošljete pošto prek tega.

Težava je v tem, da funkcija PHP mail() ne ponuja nobenega vgrajenega načina za pošiljanje pošte prek SMTP. Če želite odpreti to funkcionalnost, boste morali namestiti dodaten razred PHP.

Tu je nekaj možnosti, ki delujejo:

  • PHPmailer
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • PEAR Mail

Pokazali vam bomo, kako uporabljati PEAR Mail, vendar lahko uporabite kateri koli razred, ki podpira SMTP.

Image
Image

Če ima vaš spletni gostitelj že nameščen enega ali več teh razredov, ima verjetno vadnice, ki se nanašajo na vašo situacijo. Če je tako, nadaljujte in uporabite razred, do katerega imate dostop.

To metodo uporabite samo, če uporabljate PHP za ustvarjanje lastnih poštnih obrazcev po meri. Če uporabljate sistem za upravljanje vsebine (CMS), kot je WordPress, poiščite vtičnik ali vgrajeno funkcijo za pošiljanje pošte prek SMTP, namesto da poskušate ustvariti svojega.

Kako uporabljati PEAR za pošiljanje pošte prek SMTP

  1. Prepričajte se, da je vaša domena usmerjena na zapise Mail Exchange (MX) gostitelja vašega poštnega strežnika in zabeležite ime svojega poštnega strežnika. Na primer, lahko je mail.yourdomain.net ali smtp.yourdomain.net.
  2. Preverite, ali je PEAR Mail že nameščen na vašem poštnem strežniku.
  3. Če PEAR Mail ni nameščen, se posvetujte s svojim gostiteljem spletne pošte za posebna navodila za namestitev.
  4. Ko je PEAR Mail nameščen, spremenite eno od primerov datotek PHP v naslednjih razdelkih, da bo ustrezala vašim potrebam.

Primer PHP skripta PEAR Mail za pošto SMTP

Če želite, lahko ustvarite svoj skript iz nič ali pa spremenite naslednji primer po svojih željah. Prepričajte se, da ste v spremenljivko gostitelja vnesli ime svojega spletnega poštnega strežnika in v poljih za uporabniško ime in geslo uporabite podatke za prijavo v gostitelja spletne pošte.

require_once "Mail.php";

$from="Ime pošiljatelja";

$to="Ime prejemnika ";

$subject=" Vrstica zadeve tukaj: ";

$body=" poljubno sporočilo ";

$host="yourmailhost.com";

$username="vaše uporabniško ime ali e-pošta"; $password="vaše geslo";

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

$smtp=Mail::factory('smtp', array ('host'=> $host, 'auth'=> true, 'uporabniško ime'=> $uporabniško ime, 'geslo'=> $geslo));

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

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

echo("

". $mail->getMessage()."

);

} else {echo("

Sporočilo uspešno poslano!

);}

Primer PHP skripta PEAR Mail za avtentikacijo SMTP in šifriranje SSL

Če želite uporabljati avtentikacijo SMTP in šifriranje SSL, boste morali narediti nekaj sprememb prejšnjega primera. Spremenljivko gostitelja boste morali usmeriti na svoj poštni strežnik SSL in podati tudi številko vrat, kot je 25, 465, 587, 2525 ali 8025. Za več informacij se obrnite na gostitelja spletne pošte, če ne morete ugotoviti, katera vrata želite uporaba.

require_once "Mail.php";

$from="Ime pošiljatelja";

$to="Ime prejemnika ";

$subject=" Vrstica zadeve tukaj: ";

$body=" poljubno sporočilo ";

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

$port="587"; $username="vaše uporabniško ime ali e-pošta";

$password="vaše geslo";

$headers=niz ('Od'=> $od, ' To'=> $to, 'Subject'=> $subject);

$smtp=Mail::factory('smtp', array ('host'=> $host, 'port'=> $port, 'auth'=> true, 'username'=> $username, 'password'=> $geslo));

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

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

echo("

". $mail->getMessage()."

);

} else {echo("

Sporočilo uspešno poslano!

);}

Priporočena: