Așa că încerc să fac un test simplu al unor funcții de e-mail într-o aplicație PHP (Magento), dar mă confrunt cu o problemă. Tot ceea ce vreau să fac este să stochez rezultatul de la apeluri în sistemul încorporat Poștă()
funcția într-un fișier local în loc să-l trimită printr-un server SMTP.Știu cum și am configurat accesul SMTP pentru această aplicație în trecut, dar durează ceva timp și m-am gândit că oricum nu ar putea fi atât de greu să o faci în acest fel.
După ce am analizat documentația, încă părea că va fi foarte simplu de la sendmail_path
opțiunea de configurare părea să fie exact ceea ce aveam nevoie. Am verificat că atât pe linia de comandă, cât și prin Apache, fișierul de configurare php.ini care se încarcă este același, așa că am editat acel fișier și am setat sendmail_path
la /usr/local/bin/testsendmail
. Apoi am creat un nou script la acea cale care preia intrarea și o scrie /tmp/sent-mail.html
. Am creat acel fișier și m-am asigurat că are 777
permisiuni doar pentru a mă asigura că nu am întâlnit erori de permisiuni (the testsendmail
a avut și scenariul 775
permisiuni din același motiv).
Pentru a trimite e-mail de pe o pagină web, am creat un script PHP de testare simplu care nu face altceva decât să apeleze la Poștă()
folosind unele date de testare. Când rulez acest script prin php /var/www/html/test/test.php
, funcționează exact așa cum m-aș aștepta: cheamă către testsendmail
fișier care apoi scrie e-mailul în fișierul pe care l-am specificat. Cu toate acestea, când deschid această adresă URL în browser, Poștă()
funcția revine Adevărat
dar nu face altceva.
Am activat toate opțiunile normale de înregistrare a erorilor, nu primesc nimic înapoi cu acestea. Continuă să ruleze după Poștă()
sunați, deci nu este o eroare în tăcere. M-am asigurat că toate fișierele în cauză au permisiuni deschise, astfel încât să nu existe șansa unei erori de permisiuni. Singurul lucru la care mă pot gândi este că poate Apache generează un nou proces pentru a trimite e-mailul și, din anumite motive, acest proces nu are voie să modifice fișiere sau ceva de genul ăsta? Chiar nu sunt sigur, așa că orice ajutor ar fi foarte apreciat. Pot trimite conținutul exact al scripturilor de testare, dar ele chiar nu au altceva decât apelurile către Poștă()
și file_put_contents()
pentru a scrie datele.