Puncte:0

Am setat sendmail_path în PHP.ini și funcționează bine pe linia de comandă, dar nu atunci când același script este apelat de pe un server Apache?

drapel cn

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.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.