* remove email verification related code * remove email verification related code * remove sendgrid callback * remove sendgrid related code * remove sendgrid related code * rename sendgrid app to email * remove email from built-in channels * remove email from built-in channels * remove email from built-in channels * add email backend: https://github.com/grafana/oncall/pull/50 * add email templater * add email templater * convert md to html * add email settings to live settings * use task to send email, handle some exceptions to create logs * remove ERROR_NOTIFICATION_MAIL_DELIVERY_FAILED usage * add email limit logic * fix tests * add docs * remove old email templates * remove old email templates * add template_fields to messaging backend * add messaging backends templates to public api * add comment for deprecated fields * fix test * fix tests * disable email by default * don't retry on SMTPException and TimeoutError * add tests * bring email back to public api docs * return ERROR_NOTIFICATION_MAIL_LIMIT_EXCEEDED * make template_fields tuple * build_subject_and_title -> build_subject_and_message * add one more comment about template deprecation * use 8 as backend id * add comment about gaierror and BadHeaderError * add comment on importing in notify_user_async * edit oss docs
20 lines
644 B
Python
20 lines
644 B
Python
from apps.base.messaging import BaseMessagingBackend
|
|
from apps.email.tasks import notify_user_async
|
|
|
|
|
|
class EmailBackend(BaseMessagingBackend):
|
|
backend_id = "EMAIL"
|
|
label = "Email"
|
|
short_label = "Email"
|
|
available_for_use = True
|
|
|
|
templater = "apps.email.alert_rendering.AlertEmailTemplater"
|
|
template_fields = ("title", "message")
|
|
|
|
def serialize_user(self, user):
|
|
return {"email": user.email}
|
|
|
|
def notify_user(self, user, alert_group, notification_policy):
|
|
notify_user_async.delay(
|
|
user_pk=user.pk, alert_group_pk=alert_group.pk, notification_policy_pk=notification_policy.pk
|
|
)
|