Backstage
    Preparing search index...

    Module @backstage/plugin-notifications-backend-module-email

    The email backend module for the notifications plugin.

    @backstage/plugin-notifications-backend-module-email

    Adds support for sending Backstage notifications as emails to users.

    Supports sending emails using SMTP, SES, azure, sendmail, or stream (for debugging purposes).

    The email content can be customized with the notificationsEmailTemplateExtensionPoint. When you create this extension, you can set the custom NotificationTemplateRenderer to the module. To modify the contents, override the getSubject, getHtml and getText methods.

    import { notificationsEmailTemplateExtensionPoint } from '@backstage/plugin-notifications-backend-module-email';
    import { Notification } from '@backstage/plugin-notifications-common';

    export const notificationsModuleEmailDecorator = createBackendModule({
    pluginId: 'notifications',
    moduleId: 'email.templates',
    register(reg) {
    reg.registerInit({
    deps: {
    emailTemplates: notificationsEmailTemplateExtensionPoint,
    },
    async init({ emailTemplates }) {
    emailTemplates.setTemplateRenderer({
    async getSubject(notification) {
    return `New notification from ${notification.source}`;
    },
    async getText(notification) {
    return notification.content;
    },
    async getHtml(notification) {
    return `<p>${notification.content}</p>`;
    },
    });
    },
    });
    },
    });
    notifications:
    processors:
    email:
    # Transport config, see options at `config.d.ts`
    transportConfig:
    transport: 'smtp'
    hostname: 'my-smtp-server'
    port: 587
    secure: false
    username: 'my-username'
    password: 'my-password'

    # AWS SES
    # transportConfig:
    # transport: 'ses'
    # accessKeyId: 'my-access-key
    # region: 'us-west-2'

    # Azure Communication Service
    # transportConfig:
    # transport: 'azure'
    # endpoint: 'https://my-endpoint.communication.azure.com'
    # accessKey: 'my-access-key' Optional: if not provided, Managed Identity will be used

    # sendmail
    # transportConfig:
    # transport: 'sendmail'
    # path: '/usr/sbin/sendmail'
    # newline: 'unix'

    # The email sender address
    sender: 'sender@mycompany.com'
    replyTo: 'no-reply@mycompany.com'
    # Who to send email for broadcast notifications
    broadcastConfig:
    receiver: 'users'
    # Optional SES config
    # sesConfig:
    # fromArn: 'arn:aws:ses:us-west-2:123456789012:identity/example.com'
    # configurationSetName: 'custom-config'
    # How many emails to send concurrently, defaults to 2
    concurrencyLimit: 10
    # How much to throttle between emails, defaults to 100ms
    throttleInterval:
    seconds: 60
    # Cache configuration for email addresses
    # This is to prevent unnecessary calls to the catalog
    cache:
    ttl:
    days: 1
    # Notification filter which this processor will handle
    filter:
    # Minimum severity of the notification to send email
    minSeverity: high
    # Maximum severity of the notification to send email
    maxSeverity: critical
    # Topics that are excluded from sending email
    excludedTopics:
    - scaffolder
    # List of allowed email addresses to get notifications via email
    allowlistEmailAddresses:
    - john.doe@backstage.io
    # List of denied email addresses to get notifications via email
    denylistEmailAddresses:
    - jane.doe@backstage.io

    See config.d.ts for more options for configuration.

    Interfaces

    NotificationsEmailTemplateExtensionPoint
    NotificationTemplateRenderer

    Variables

    default
    notificationsEmailTemplateExtensionPoint