E-mail küldése PHP-szkriptből SMTP-hitelesítéssel

Tartalomjegyzék:

E-mail küldése PHP-szkriptből SMTP-hitelesítéssel
E-mail küldése PHP-szkriptből SMTP-hitelesítéssel
Anonim

Amit tudni kell

  • PHP osztálybeállítások: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
  • PEAR Mail: Jegyezze fel a levelezőszerver nevét > ellenőrizze, hogy a PEAR Mail telepítve van-e > módosítsa a PHP fájlt a megadott példák segítségével.

Ez a cikk elmagyarázza, hogyan lehet SMTP-hitelesítést használni e-mailek küldésére a PEAR Mail PHP mail() függvényével.

E-mail küldése a PHP Mail funkcióval

A PHP mail() funkciójának használatakor közvetlenül a webszerverről küld e-mailt, nem pedig a levelezőszerverről. Ha van egy levelezőszervere a webtárhelyén keresztül, vagy akár egy másik gazdagéppel rendelkező levelezőszerver is, általában jobb, ha ezen keresztül küld leveleket.

A probléma az, hogy a PHP mail() függvénye nem biztosít semmilyen beépített módot az SMTP-n keresztüli levelek küldésére. Ha meg szeretné nyitni ezt a funkciót, telepítenie kell egy további PHP osztályt.

Íme néhány működő lehetőség:

  • PHPmailer
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • PEAR Mail

Megmutatjuk, hogyan kell használni a PEAR Mail-t, de bármilyen osztályt használhat, amely támogatja az SMTP-t.

Image
Image

Ha webtárhelyén már telepítve van egy vagy több ilyen osztály, valószínűleg vannak az Ön helyzetére vonatkozó oktatóanyagok. Ha igen, folytassa és használja azt az osztályt, amelyhez hozzáfér.

Csak akkor használja ezt a módszert, ha PHP-t használ saját egyéni levelezőlapok létrehozásához. Ha olyan tartalomkezelő rendszert (CMS) használ, mint a WordPress, keressen egy beépülő modult vagy beépített funkciót, amellyel SMTP-n keresztül küldhet leveleket, ahelyett, hogy sajátot akarna létrehozni.

A PEAR használata levelek küldésére SMTP-n keresztül

  1. Győződjön meg arról, hogy tartománya a levelezőszerver gazdagépének Mail Exchange (MX) rekordjaira mutat, és jegyezze fel a levelezőszerver nevét. Lehet például mail.yourdomain.net vagy smtp.yourdomain.net.
  2. Ellenőrizze, hogy a PEAR Mail már telepítve van-e a levelezőszerverén.
  3. Ha a PEAR Mail nincs telepítve, a telepítéssel kapcsolatos konkrét utasításokért forduljon a webes levelezőszolgáltatóhoz.
  4. A PEAR Mail telepítése után módosítsa az egyik példa PHP fájlt a következő szakaszokban az igényeinek megfelelően.

Példa PEAR Mail PHP szkript az SMTP levelekhez

Ha úgy tetszik, a semmiből létrehozhatja saját szkriptjét, vagy ízlése szerint módosíthatja a következő példát. Ügyeljen arra, hogy a gazdagép változóban adja meg a webes levelezőszerver nevét, és használja a webes levelezési kiszolgáló bejelentkezési adatait a felhasználónév és jelszó mezőben.

request_once "Mail.php";

$from="Feladó neve ";

$to="Címzett neve ";

$subject=" Tárgysor itt: ";

$body=" tetszőleges üzenetet szeretne ";

$host="yourmailhost.com";

$username="az Ön felhasználóneve vagy e-mail címe"; $password="az Ön jelszava";

$headers=tömb ('From'=> $feladó, 'Cél'=> $címzett, 'Tárgy'=> $subject);

$smtp=Mail::factory('smtp', array ('host'=> $host, 'auth'=> igaz, 'felhasználónév'=> $felhasználónév, 'jelszó'=> $jelszó));

$mail=$smtp->küldés($címzett, $fejlécek, $törzs);

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

echo("

". $mail->getMessage()."

);

} else {echo("

Üzenet sikeresen elküldve!

);}

Példa PEAR Mail PHP-szkript SMTP-hitelesítéshez és SSL-titkosításhoz

Ha SMTP-hitelesítést és SSL-titkosítást szeretne használni, néhány módosítást kell végrehajtania az előző példán. A gazdagép változót az SSL levelezőszerverre kell irányítania, és meg kell adnia egy portszámot is, például 25, 465, 587, 2525 vagy 8025. További információért forduljon a webes levelezőszolgáltatóhoz, ha nem tudja eldönteni, melyik portot használja. használd.

request_once "Mail.php";

$from="Feladó neve ";

$to="Címzett neve ";

$subject=" Tárgysor itt: ";

$body=" bármilyen üzenetet szeretne ";

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

$port="587"; $username="az Ön felhasználóneve vagy e-mail címe";

$password="az Ön jelszava";

$headers=tömb ('From'=> $feladó, ' To'=> $címzett, 'Tárgy'=> $tárgy);

$smtp=Mail::factory('smtp', array ('host'=>) $host, 'port'=> $port, 'auth'=> true, 'username'=> $felhasználónév, 'password'=> $jelszó));

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

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

echo("

". $mail->getMessage()."

);

} else {echo("

Üzenet sikeresen elküldve!

);}

Ajánlott: