Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Bash zachycení emailu  (Přečteno 4346 krát)

TOMeek

  • Návštěvník
  • Příspěvků: 32
Bash zachycení emailu
« kdy: 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:
Kód: [Vybrat]
#!/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 :
Kód: [Vybrat]

<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.

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re:Bash zachycení emailu
« Odpověď #1 kdy: 31 Března 2016, 09:48:14 »
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?
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

TOMeek

  • Návštěvník
  • Příspěvků: 32
Re:Bash zachycení emailu
« Odpověď #2 kdy: 01 Dubna 2016, 08:44:30 »
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
Kód: [Vybrat]
echo "Test" > log.txt tak to nic nezapíše a jen se provede ten sendmail.

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re:Bash zachycení emailu
« Odpověď #3 kdy: 01 Dubna 2016, 08:59:17 »
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.
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

TOMeek

  • Návštěvník
  • Příspěvků: 32
Re:Bash zachycení emailu
« Odpověď #4 kdy: 01 Dubna 2016, 09:05:16 »
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.

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re:Bash zachycení emailu
« Odpověď #5 kdy: 01 Dubna 2016, 09:15:56 »
Zkus

Kód: [Vybrat]
echo "Test" > /tmp/log.txt

S jakými právy se spustí ten script?
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

TOMeek

  • Návštěvník
  • Příspěvků: 32
Re:Bash zachycení emailu
« Odpověď #6 kdy: 01 Dubna 2016, 09:22:48 »
Á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.

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re:Bash zachycení emailu
« Odpověď #7 kdy: 01 Dubna 2016, 10:27:04 »
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?
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

TOMeek

  • Návštěvník
  • Příspěvků: 32
Re:Bash zachycení emailu
« Odpověď #8 kdy: 01 Dubna 2016, 10:45:40 »
Ano do tempu už to projde bez problému.
Tím jsem se posunul dál.
Díky za rady.

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re:Bash zachycení emailu
« Odpověď #9 kdy: 01 Dubna 2016, 10:48:46 »
Nz, dej pak vědět :)
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

 

Provoz zaštiťuje spolek OpenAlt.