Kako poslati e-poštu iz PHP skripte koristeći SMTP autentifikaciju

Sadržaj:

Kako poslati e-poštu iz PHP skripte koristeći SMTP autentifikaciju
Kako poslati e-poštu iz PHP skripte koristeći SMTP autentifikaciju
Anonim

Šta treba znati

  • PHP opcije klase: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
  • PEAR Mail: Zabilježite ime mail servera > provjerite da li je PEAR Mail instaliran > modificirajte PHP fajl koristeći date primjere.

Ovaj članak objašnjava kako koristiti SMTP autentifikaciju za slanje e-pošte s PHP mail() funkcijom u PEAR Mail.

Slanje e-pošte sa PHP Mail funkcijom

Kada koristite PHP mail() funkciju, na kraju šaljete e-poštu direktno sa vašeg web servera, a ne sa servera e-pošte. Ako imate mail server preko vašeg web hosta, ili čak mail server sa drugim hostom, obično je bolje slati poštu preko njega.

Problem je u tome što PHP mail() funkcija ne pruža nikakav ugrađeni način za slanje pošte putem SMTP-a. Ako želite da otvorite tu funkcionalnost, moraćete da instalirate dodatnu PHP klasu.

Evo nekih opcija koje rade:

  • PHPmailer
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • PEAR Mail

Pokazaćemo vam kako da koristite PEAR Mail, ali možete koristiti bilo koju klasu koja podržava SMTP.

Image
Image

Ako vaš web host već ima instaliranu jednu ili više ovih klasa, vjerovatno ima tutorijale koji se odnose na vašu situaciju. Ako jeste, samo naprijed i koristite klasu kojoj imate pristup.

Ovu metodu koristite samo ako koristite PHP za kreiranje vlastitih prilagođenih obrazaca za poštu. Ako koristite sistem za upravljanje sadržajem (CMS) kao što je WordPress, potražite dodatak ili ugrađenu funkcionalnost za slanje pošte putem SMTP-a, umjesto da pokušavate kreirati vlastiti.

Kako koristiti PEAR za slanje pošte putem SMTP-a

  1. Uverite se da je vaša domena usmerena na Mail Exchange (MX) zapise vašeg host servera i zabeležite ime vašeg mail servera. Na primjer, to može biti mail.yourdomain.net ili smtp.yourdomain.net.
  2. Provjerite da li je PEAR Mail već instaliran na vašem mail serveru.
  3. Ako PEAR Mail nije instaliran, konsultujte se sa svojim hostom za web poštu za konkretna uputstva za njegovu instalaciju.
  4. Kada se PEAR Mail instalira, modificirajte jedan od primjera PHP fajlova u sljedećim odjeljcima kako bi odgovarao vašim potrebama.

Primjer PEAR Mail PHP skripte za SMTP poštu

Možete kreirati vlastitu skriptu od nule ako želite, ili modificirati sljedeći primjer po svom ukusu. Pobrinite se da unesete ime vašeg web servera e-pošte u varijablu hosta i koristite svoje podatke za prijavu za vašeg hosta web pošte u poljima korisničkog imena i lozinke.

require_once "Mail.php";

$from="Ime pošiljaoca ";

$to="Ime primaoca ";

$subject=" Predmet ovdje: ";

$body=" bilo koju poruku koju želite ";

$host="yourmailhost.com";

$username="vaše korisničko ime ili email"; $password="vaša lozinka";

$headers=niz ('Od'=> $od, 'Do'=> $do, 'Subject'=> $subject);

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

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

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

echo("

". $mail->getMessage()."

);

} ostalo {echo("

Poruka je uspješno poslana!

);}

Primjer PEAR Mail PHP skripte za SMTP autentifikaciju i SSL enkripciju

Ako želite koristiti SMTP autentifikaciju i SSL enkripciju, morat ćete napraviti nekoliko modifikacija u prethodnom primjeru. Morat ćete usmjeriti varijablu hosta na vaš SSL server pošte, a također navesti broj porta kao što je 25, 465, 587, 2525 ili 8025. Obratite se svom hostu za web poštu za više informacija ako ne možete shvatiti koji port želite koristiti.

require_once "Mail.php";

$from="Ime pošiljaoca ";

$to="Ime primaoca ";

$subject=" Predmet ovdje: ";

$body=" bilo koju poruku koju želite ";

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

$port="587"; $username="vaše korisničko ime ili email";

$password="vaša lozinka";

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

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

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

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

echo("

". $mail->getMessage()."

);

} ostalo {echo("

Poruka je uspješno poslana!

);}

Preporučuje se: