/
[emails] Asynchronous e-mail sending by default [5.3.0-B1]

[emails] Asynchronous e-mail sending by default [5.3.0-B1]

In-Portal support 2 ways of sending e-mails:

  • immediate - e-mail is sent immediately

  • queued - e-mail is put into queue and then all queued e-mail are sent within next 30 minutes

By default all e-mails are sent immediately and this creates following problems:

  1. page, which caused e-mail sending, is frozen until e-mail is completely sent

  2. any fatal errors, that might happen during parsing e-mail template text result in user getting white screen

I'm proposing to:

  1. wrap e-mail template parsing in some sort of check code, that would:

    1. catch error if any

    2. write down this error into "System Log"

    3. don't send e-mail with parsing error

    4. allow code, that follows after e-mail sending to continue running

  2. send all e-mails asynchronously (e.g. put them into queue) with option to override this on per e-mail basis

  3. don't wait 30 minutes to send an e-mail, but rather send e-mail as soon as possible

delayed_email_sending_feat.patch - only implements 2 and 3 items of proposed

Related Tasks

INP-1223: Asynchronous e-mail sending by defaultResolved

INP-1710: [bc fix] Asynchronous e-mail sending by defaultResolved

INP-1224: Gracefully handle exceptions during e-mail body generationResolved

INP-1304: Write e-mail processing errors to "E-mail Log"Resolved