Mik a php mailküldés lehetőségei, beállításai?

A ws_mediawiki wikiből

Email küldése PHP-ban SMTP-n keresztül

A php beépített mail() függvénye könnyen használható, de cserébe nem enged túl sok beállítási lehetőséget. A legnagyobb hiánya, hogy nem lehet vele SMTP szerveren keresztül levelet küldeni. Helyette használhatjuk a PEAR Mail csomagját, amely tartalmazza többek között ezt a lehetőséget is. A példa kód szemlélteti, hogy hogyan tudunk SMTP-n keresztül levelet küldeni php-ból. Mielőtt használnák, végezzék el a következő módosításokat: from: mely emailcím legyen feltüntetve a levél feladójaként (nem tartalmazhat ékezetet) to: a fogadó emailcíme és neve (szintén nem tartalmazhat ékezetet) username: az SMTP felhasználónév password: az SMTP jelszó (a felhasználónév és jelszó megegyezik a regisztráció során megadott alapértelmezett felhasználói névvel és jelszóval. A felhasználónév után kell még írni a domain nevet. Ha önnek az alapértelmezett felhsználói neve janoskft akkor janoskft@sajatdomain.hu lesz az alapértelmezett postafiók felhasználói neve.

" ; $to="Fogado Ferenc " ; $subject="Helló!" ; $body="Helló,nnHogy vagy?" ; $host="mail.web-server.hu" ; $username="felhasznalonev@domain.hu" ; $password="jelszo" ; $headers=array( 'From'=> $from,

       'To' => $to,
       'Subject' => $subject
   );
   $smtp = Mail::factory(
       'smtp',
       array(
           'host' => $host,
           'auth' => true,
           'username' => $username,
           'password' => $password
       )
   );
   $mail = $smtp->send($to, $headers, $body);
   if (PEAR::isError($mail)) {
       echo("

" . $mail->getMessage() . "

");

   } else {
       echo("

A levél sikeresen elküldve!

");

   }

?>

Tárhelyszolgáltatási hálózatunkban minőségjavítás céljából új, e-mail feladóazonosítási rendszert vezettünk be.

Ok: - A kimenő Tárhely levelezési szervereink egyre többször kerültek spam listákra, a rengeteg kiáradó hibás feladójú és/vagy kéretlen tartalmú levél miatt.

Okozat: - A szervereinkről, php-ból elinduló, "From" fejléc nélküli levelek (feladó nélküli) tömegesen mentek ki. Az általános beállítások szerint ilyenkor a feladó megfelelt a "felhasználónév@szervernév.web-server.hu"–nak (pl.: gipszjakab@titan.web-server.hu). Ez helytelen, hiszen ezek a feladó címek nem léteznek, igy valójában spamnek minősíthető levelek mentek ki! Ez okozta azt is, hogy ha hibás címre ment ki egy levél, nem tudott hova visszaérkezni a hibáról értesítő e-mail. - A kimenő levelek száma nem volt korlátozva, ezáltal sokan akár kitalált címlistákra is szórhatták kéretlen leveleiket.

Megoldás: - A kimenő levelek esetében ezentúl, ha nincs kitöltve programozási szinten a feladó, akkor a kimenő szerverünk automatikusan azonosítja a küldőt, majd az ügyfélkapuban/adminisztrációs felületen állítható "alapértelmezett php levél feladó" beállításának megfelelően lecseréli a valótlan feladót egy valós e-mail címre. Ez csak az esetben lép életbe,ha a "from" mező nincs kitöltve! - A kimenő levelek számát is korlátoztuk. Óránként alapértelmezett 500, míg naponta 2000 levelet küldhet ki bárki. Ez azt jelenti, hogy 2000 levelet kiküldhet az ügyfél 1 nap alatt, azonban a szerver miután megkapja a listát, 4 óra alatt küldi ki.