Jump to content
php.lv forumi

E-pastu izsūtīšanas sistēma


briedis

Recommended Posts

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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...