Plato needs to send emails. For example when a user registers within Plato, Plato will send the user a verification link via email that the user must click to confirm they own the email address they provided before they can login and participate within Plato. Plato also needs to send email for account recovery & general notification purposes.

To ensure your email are configured correctly please see our Email Settings guide.

How Emails Work

To avoid the overhead of communicating with your SMTP server as users perform actions that generate emails within Plato, Plato uses a database table to instead queue email messages that need to be sent.

This database table (typically named {yourprefix}_Emails) is periodically polled on a background thread and any emails in the queue are sent. If an email fails for any reason Plato will attempt to send the email again upon the next poll until the email reaches your configured "Send Attempts" threshold. Once a queued email reaches the "Send Attempts" threshold and it's still failing the email will be automatically deleted from the queue table on the next poll.

You can configure how the polling and queuing work. For further information please see "Configuring Queue & Polling" within our Email Settings guide.

Performance

In addition to the email queue and background polling whenever notifications need to be sent within Plato these will be added to the {yourprefix}_Emails database table via the deferred task services built into Plato. Deferred tasks within Plato only execute after the page has completed rendering for the client. This ensures if the client performs an action that needs to generate thousands of notifications they will see the same response time as posting a message that generates no notifications.