Három Drupal-t költöztettem az elmúlt hetekben egy fizetős szolgáltatótó az ügyfél saját kiszolgáló gépére. Szépen apránként jöttek elő a gondok, eddig mind megoldhatónak bizonyult.
Most azonban az új helyen a Drupal alól küldött levelek (akár beépített drupal, pl contact, akár saját magam által írt PHP-tartalmú node-ból a PHP mail() függvényével) nem jutottak ki a szerverről. A rendszergazdival megfejtettük, hogy a PHP nem fér hozzá a sendmail parancshoz. Ez így OK, mostmár mennek a levelek.
A bajom viszont az, hogy az elmúlt 2 és fél hétben kiküldött levelek nagyon kellenének! A felhasználók jelentkezési lapot töltenek ki, ami levélben megy el. (Az ügyfél kérte így - az én hibám ebben az egészben, hogy külön nem loggoltam a levelek tartalmát.) A PHP nem jelzett hibát (furcsa), így a felhasználók azt hiszik, a levél rendben elment. A kérdés tehát az, hogy ha a sendmail már meg sem kapta a leveleket, akkor a PHP vagy bármi más tárolja-e valahol a sikertelen próbálkozásokat? Ki lehet-e valahonnan bányászni azokat a leveleket? Hol kutakodjak?
Nézzétek el nekem, hogy nem a legmegfelelőbb helyen kérdezem ezt, mert a kérdés tulajdonképpen PHP-specifikus, de reményeim szerint itt gyorsabban kaphatok valakitől választ, aki már találkozott ezzel Drupal alatt vagy másképp!
Köszi :ady
szvsz elvesztek
Elvileg már a Drupal installálásakor ki kellett volna derülnie, hogy nem megy a levélküldés. Ezért érdemes költözés előtt feldobni egy üres rendszert, és megnézni, hogy minden működik-e (levélküldés, útvonal álnevek, privát letöltési mód).
Szerintem ezek a levelek elvesztek, a Drupal sehol sem logolja őket szöveggel együtt (többek között ezért használunk többen a beépített contact helyett webform modult).
Nem tudom, a szerveren mit logol a rendszergazda, ott lehet valami nyoma a leveleknek, bár ha a sendmail sem értesült a levelekről, az nem jó jel. Esetleg a Drupal admin naplójából ki tudod bányászni, hogy kik küldtek mostanában üzenetet a contact modulon keresztül, őket lehet értesíteni. Kérdés, hogyan állítottad be, mennyi idő után törölje a rendszerüzeneteket a naplóból.
Re: elvesztek
Az "installáláskor" sajnos nem történt installálás. Az új helyen megpróbáltam beállíttatni a szükséges környezetet, aztán átmásoltam a Drupal fájljait, és végül az adatbázist is átmentettem. Ez így kivitelezhetőnek tűnt, egy jó darabig párhuzamosan futott a két helyen a két rendszer, amíg az új elérte a stabil(nak látszó) állapotot, ekkor átálltak a domain-ek, és azóta élesben fut. Ha a PHP csak egyszer is hibaüzenetet dob a mail() miatt, észrevettem volna, de épp ez az, hogy nem sikítozott.
A rendszergazda egy chroot jail-en keresztül enged hozzáférést, így a PHP el sem érte a sendmail parancsot, pedig az ott van a gépen.
A Drupal admin naplója alapbeállítás szerint fut, abból semmi használhatót nem tudtam kiszedni. Az Apache2 logjai között megtaláltam a POST kérések fejlécét (access-log) és egy másikban (error.log) a hibás sendmail parancs hívásokat, de semmi mást. Így megvannak az időpontok, de csak annyi.
apache error log
Ha szerencséd van akkor az apache error logban meg vannak a levelek. Már persze ha ez ba van állítva.
szinte tuti nincs meg
99.999% -ban nem szokás POST adatokat logokba tolni, főleg ha nem vmi miatt meg kell fogni (pl mod_security)...
root?
A [email protected] címre sem érkezett meg egyetlen levél sem? Nehéz elhinni, hogy egy régóta működő szerveren a PHP nem fér hozzá a levelezéshez.
dhost.hu admin
ott se...
...találtam. Nem olyan rég futó szerver, mivel most állítottuk be. A jail miatt nem fért hozzá.