Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: TOMeek 30 Března 2016, 22:26:55
-
Zdravím,
měl bych dotaz. Mám pár klientů s www stránkami, ale někteří to přehánějí s posíláním emailů přes PHP sktipt (není to spam, ale na můj vkus už to přehánějí) proto bych si rád napsal nějaký mezistupeň mezi poslání emailu a sendmail, kde bych si ověřil zda doména xy neposlala za posledních třeba 10 min více než emailů. Problém je, že pokud napíšu skrypt tak se sice email odešle, ale třeba připojení k DB, které by mi to ověřilo už se neprovede. Mám to nějak takto:
#!/bin/bash
... přiopjení na mysql a ověření ...
/usr/sbin/sendmail -t -i
V configu apache mám u dané domény doplněk :
<VirtualHost *:80>
...
php_admin_value sendmail_path "/usr/local/sbin/sendmail.sh domenaxy.cz"
</VirtualHost>
Viděl jsem něco podobného v Pythonu, ale je to už z roku 2012 a funkčnost byla všeljaká. Tak bych potřeboval poradit, zda něco podobného v bashi vůbec de nebo zda je lehčí cesta než vlastní script.
-
Jde a bash je dle mého ta nejjednodušší cesta.
Proč by Ti to neprovedlo ověření v DB? Jen nevíš jak z bashe na select z DB?
-
Vím, jak na dotaz v bashi, ale přijde mi, že to prostě přeskočí vše co je před tím sendmailem a provede to jen ten příkaz. Dokonce i když si dám před ten sendmail něco jako
echo "Test" > log.txt
tak to nic nezapíše a jen se provede ten sendmail.
-
A jsi si jist, že to ten script vůbec zavolá?
Občas taky využívají různe redakční systémy apod. ne php příkaz mail, ale vlastní verzi, která se připojuje na definovaný SMTP přes protokol.
-
Tady na to mám testovací soubor jen s prostou funkcí mail();
Pokud v tom bashi ten řádek zakomentuju, tak se email nepošle, takže předpokládám, že se to odesílá přes něj.
-
Zkus
echo "Test" > /tmp/log.txt
S jakými právy se spustí ten script?
-
Áha, práva to mě nenapadlo.
Na soubor mám: -rwxrwxr-x 1 root root 66 dub 1 09:20 sendmail.sh a předpokládám, že to pouští www-data když PHP běží přes apache.
-
Na soubor jsou asi jedno (tedy pokud explicitně nezakazují), ale jde o to, zda uživatel www-data má práva udělat to, co po něm chceš.
Co ten výstup do tempu, už to projde?
-
Ano do tempu už to projde bez problému.
Tím jsem se posunul dál.
Díky za rady.
-
Nz, dej pak vědět :)