briedis Posted October 23, 2011 Report Share Posted October 23, 2011 Mērķis ir izveidot iekšēju e-pastu izsūtīšanas sistēmiņu. Pamatā ir 3 veidu e-pasti: Jaunumu izsūtīšana (čupa ar e-pastiem, nav personalizēti) Pēc pieprasījuma. Reģistrācijas apstiprinājumi, paroles atjaunošana, etc. (pa 1 e-pastam, personalizēts) Ieplānotie ziņojumi. Konta termiņu, neapmaksātu rēķinu atgādinājumi, etc. (čupa ar e-pastiem, personalizēti, tiek pildīti ikdienišķi noteiktos laikos) Kā plānoju realizēt Ir tabula mail_messages, kurā glabājas ziņojumu templeiti, ziņojumam tiek pakārtots TIPS, kas ir, piemēram, "newsletter", "bill_reminder", "new_password_notification". Ziņojuma tekstā ir savadīti arī parametri, piemēram, {name}, {bill_number}, kas attiecīgi tiek aizpildīti, kad tiek sūtīti e-pasti. Kā tas viss varētu strādāt Jaunumu izsūtīšana Administrators atver paneli, izvēlās (pievieno) vajadzīgā tipa ziņojumu, konkrēti, "newsletter", klikšķina - "create new job" un norāda cikos šiem ziņojumiem būtu jāsāk izsūtīties. Tabulā mail_jobs tiek pievienots ieraksts ar ieplānotu darbu. Ziņojumu "pēc pieprasījuma" izsūtīšana Notiek notikums, paņemam no tabulas attiecīgā tipa ziņojumu, nopārsējam parametrus un uzreiz izsūtam e-pastu. Ieplānoto ziņojumu izsūtīšana Crons izsauc noteiktā laikā skriptu, kas pievieno ierakstu mail_jobs tabulai, norādot kāda tipa ziņojums ir jāsūta, piemēram, visi neapmaksāto rēķinu atgādinājumi. Ziņojumu izsūtīšana Ir Cron skripts (sauksim par mail_job_processor), kas izpildās, piemēram, ik pa 10 minūtēm. Skatās, vai mail_jobs tabulā nav ienācis kāds jauns sūtīšanas darbs. Ja ir, tad skatamies, kāds ziņojums ir jāsūta. Balstoties uz ziņojuma tipu, atlasam attiecīgo saņēmēju datus (e-pastus, citus parametrus), pārsējam ziņojuma tekstus un izsūtam pa vienam. Varētu būt arī tā, ka atsevišķā tabulā saglabājam šim job'am visus e-pastu saņēmējus ( + stāvokli - vai e-pasts ir nosūtīts, parametri), lai, ja nu gadās kļūda (serveris atmet kātus uz mirkli), šo darbu var turpināt nākošajā mail_job_processor izsaukšanas brīdī. Ceru uz diskusiju, ieteikumiem. Zinu, ka ir variants outsourcēt konkrēti pašu izsūtīšanu, bet pagaidām tiek meklēts lētākais risinājums. Quote Link to comment Share on other sites More sharing options...
marrtins Posted October 23, 2011 Report Share Posted October 23, 2011 Par pamatu var ņemt Mail_Queue Quote Link to comment Share on other sites More sharing options...
ieleja Posted October 23, 2011 Report Share Posted October 23, 2011 esmu sekmīgi darbinājis šo, vienīgi ilgāku laiku nedzīvs: http://pommo.org/Main_Page Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.