Email poslaný cez MySQL trigger

Programovacie jazyky, rady, poradňa...
slay
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3662
Registrovaný: 25 júl 2006, 12:13

Email poslaný cez MySQL trigger

Príspevok od používateľa slay »

Ahojte,

chcel by som spraviť niečo takéto. Mám databázu, kde sú FA, ktoré majú nejaké splatnosti. Chcem odoslať userovi automaticky pripomienku ráno v deň splatnosti FA. Stránka je na Joomle.

Takže nejaké nápady ako toto najlepšie dosiahnuť? Poznáte také extensions na joomlu alebo nejaký iný spôsob?

Cieľ je, napr. každé ráno o deviatej zbehne skript, ktorý porovná aktuálny dátum s dátumom splatnosti a pošle userovi pripomienku.
*****HERO*****
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2446
Registrovaný: 08 máj 2006, 1:34

Re: Email poslaný cez MySQL trigger

Príspevok od používateľa *****HERO***** »

aku verziu Joomly mas? skus presprtat ten modul ktory pracuje s tymi fakturami ci tam nahodou uz na mailing nejaka funkcionalita nebude, lebo je to dost bezne

inak Joomlu som uz dho nevidel, ale najjednoduchsie by bolo spravit nejaky externy script, ktory z DB vytiahne tie faktury a rozposle, ten ti pak kludne napisem, ked budem vediet aspon ako vyzera tabulka. na ten script si spustis crona napr na tu deviatu rano.

inak ako to vsetko suvisi s MySQL triggermi?
miso250593
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 89
Registrovaný: 11 júl 2008, 16:53
Kontaktovať používateľa:

Re: Email poslaný cez MySQL trigger

Príspevok od používateľa miso250593 »

triggere sú veru na niečo úplne iné, možno myslel eventy, ale tie jednak niesu povolené na bežných hostingoch, a email by aj tak pomocou nich nedokázal odoslať
ale súhlasím s *****HERO*****, nejaký jednoduchý externý skript ktorý preleze tú tabuľku a odošle emaile by bol najlepší
slay
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3662
Registrovaný: 25 júl 2006, 12:13

Re: Email poslaný cez MySQL trigger

Príspevok od používateľa slay »

No tak prrr.. :lol:

- Ja nie som úplne profi programátor, skôr len sa tak dlhodobo šprtám vo všetkom, ale zvyčajne ma stačí nasmerovať a zvládnem skoro všetko.
- Mám 2.5.14
- Modul s FA tam nie je. Totižto to nie je eshoop. Firma sa orientuje na veľkoobchod, to znamená, pre každého klienta je špecifická ponuka, špecifické ceny, špecifické všetko. Takže som tam spravil taký objednávkový formulár, ktorý to dynamicky všetko podľa usera nahadzuje. Je to integrované na DB, ale autogenerovanie FA tam zatiaľ nie je, jednak preto, lebo som mal problém nahodiť špecificky dizajn FA do nejakého modulu a jednak preto, lebo klienti majú často nejaké špecifické požiadavky na splatnosť a tak podobne.. ale aj to asi dorobím. A možno máš pravdu, že prv by bolo fajn dorobiť toto a možno to bude mať aj takú fičurinu s pripomienkou.
- S db nie je problém vytiahnuť FA, aj maily, skrátka všetko čo treba, to zvládam.
- Čo to má s triggermi? No hmm, vlastne už nič, ak to vybaví ten cron :D

Ten externý script, no fajn, spustí sa cron, vyberie z db čo treba, ale potom by som potreboval nejaký kód, ktorý pošle mail cez mailer SMTP (lebo PHPmail a tak, som zvykol mať problém s doručením). Proste kod, ktorý vie vygenerovať mail tak, že dohodí do templateu správne udaje s db a odošle. Ak by si mal nejaký example, alebo link po ruke, tak ja už si to dokážem spracovať.
miso250593
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 89
Registrovaný: 11 júl 2008, 16:53
Kontaktovať používateľa:

Re: Email poslaný cez MySQL trigger

Príspevok od používateľa miso250593 »

Veď použi PhpMailer, ten zvláda poslať email aj cez SMTP

Kód: Vybrať všetko

https://github.com/Synchro/PHPMailer
a čo sa týka toho skriptu, tak určite dokážeš spraviť, pripojiš sa k DB, načítaš faktúry, a potom v tom cykle kde budeš prechádzať faktúry odošleš email

Výhodu to má že PhpMailer dokáže pracovať aj s HTML emailami, takže si spravíš dáku šablónu, a len vložíš potrebné údaje
slay
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3662
Registrovaný: 25 júl 2006, 12:13

Re: Email poslaný cez MySQL trigger

Príspevok od používateľa slay »

No no, presne také usmernenie potrebujem, čo čo dokáže, a čo s čím ako kde.. hlavne example a ja už sa nejako s tým pohrám :)
miso250593
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 89
Registrovaný: 11 júl 2008, 16:53
Kontaktovať používateľa:

Re: Email poslaný cez MySQL trigger

Príspevok od používateľa miso250593 »

Keďže si robil ten formulár tak predpokladám že spraviť výpis FA ktoré končia daný deň vieš spraviť, no a pre každú faktúru ktorú budeš prechádzaš spravíš pošleš mail
Na tej stránke čo som ti dal je aj ukážka

Kód: Vybrať všetko

https://github.com/Synchro/PHPMailer#a-simple-example
Len pozor, v každej iterácii by si mal vytvoriť nový objekt, a všetko ponastavovať, lebo addAddress() pridá adresu, a chudák prvý by dostal veľa mailov ;)

Kód: Vybrať všetko

<?php
$mail = new PHPMailer;

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com';  // Specify main and backup server
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'jswan';                            // SMTP username
$mail->Password = 'secret';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable encryption, 'ssl' also accepted

$mail->From = '[email protected]';
$mail->FromName = 'Mailer';
$mail->addAddress('[email protected]');  // Add a recipient

$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
   echo 'Message could not be sent.';
   echo 'Mailer Error: ' . $mail->ErrorInfo;
   exit;
}
?>
toto by malo byť minimum čo by si potreboval

a ak chceš posielať nejaký "pekný" HTML email, tak si sprav nejakú šablónu v ktorej príslušné hodnoty len nahradíš údajmi danej faktúry
slay
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3662
Registrovaný: 25 júl 2006, 12:13

Re: Email poslaný cez MySQL trigger

Príspevok od používateľa slay »

Hah! Success! :lol:

Všetko beží, ale na začiatku som ako si nedomyslel jednu vec. A síce, vôbec netuším, ako zautomatizovať potvrdenie zaplatených FA -> tzn. aby sa neposlala pripomienka v deň splatnosti na už uhradené FA.

Zatiaľ je aj manuál OK. Ale kruci :lol: základný háčik mi na začiatku nedopol. Stáva sa. Čisto teoreticky sa dá v banke nastaviť aby zasielali mail (alebo sms), ale ten by sa musel nejako automatizovane parsovať, aby sa vyčítalo podľa VSymbolu, ktorá FA bola uhradená a následne to updatenuť v DB. Ale také čosi, je už asi mimo moje možnosti a pravdepodobne by to bolo nestabilné.

No nič, ale aj tak dobre. Ďekan, zistil som, že PHPmailer je už implicitne ako knižnica v joomle. Ešte to chce nejaké testy na hromadný mail a tak, ale zatiaľ to beží fajn.
Napísať odpoveď