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.

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
- 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.
- Ellenőrizze, hogy a PEAR Mail már telepítve van-e a levelezőszerverén.
- 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.
- 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!
);}