{"id":23626271,"url":"https://github.com/datalust/seq-app-mail","last_synced_at":"2025-08-31T02:31:39.691Z","repository":{"id":190067604,"uuid":"668050042","full_name":"datalust/seq-app-mail","owner":"datalust","description":"Notify from Seq using a variety of email services.","archived":false,"fork":false,"pushed_at":"2024-06-19T05:33:56.000Z","size":368,"stargazers_count":2,"open_issues_count":2,"forks_count":2,"subscribers_count":5,"default_branch":"dev","last_synced_at":"2024-12-11T04:00:14.041Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/datalust.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-18T22:58:46.000Z","updated_at":"2024-06-24T09:38:41.000Z","dependencies_parsed_at":"2023-08-23T04:58:56.379Z","dependency_job_id":"488a33f8-9ee5-4aa4-bfd8-3478f1321439","html_url":"https://github.com/datalust/seq-app-mail","commit_stats":null,"previous_names":["datalust/seq-app-mail"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datalust%2Fseq-app-mail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datalust%2Fseq-app-mail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datalust%2Fseq-app-mail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datalust%2Fseq-app-mail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datalust","download_url":"https://codeload.github.com/datalust/seq-app-mail/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231548398,"owners_count":18393559,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-27T22:52:43.693Z","updated_at":"2024-12-27T22:52:44.378Z","avatar_url":"https://github.com/datalust.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Seq Mail Apps [![Build status](https://ci.appveyor.com/api/projects/status/6jo5xhyfans07msl/branch/dev?svg=true)](https://ci.appveyor.com/project/datalust/seq-app-mail/branch/dev)\n\nThis repository contains the Seq output apps for various email services, built on a shared email templating system.\n\n| Package id                                                                          | Description                                                     |\n|-------------------------------------------------------------------------------------|-----------------------------------------------------------------|\n| [`Seq.App.Mail.AmazonSes`](https://nuget.org/packages/seq.app.mail.amazonses)       | Send email using the Amazon Simple Email Service (SES) API.     |\n| [`Seq.App.Mail.Microsoft365`](https://nuget.org/packages/seq.app.mail.microsoft365) | Send email through Microsoft 365 using the Microsoft Graph API. |\n| [`Seq.App.Mail.Smtp`](https://nuget.org/packages/seq.app.mail.smtp)                 | Send email using the SMTP protocol.                             |\n\n\u003e Need to send email using a protocol or API not listed here? Let us know!\n\n## Getting started\n\nInstall the app under _Settings \u003e Apps_, using one of the package ids from the table above.\n\nVisit the Seq documentation for detailed information about [installing and configuring Seq Apps](https://docs.datalust.co/docs/installing-seq-apps).\n\n## Settings\n\nWhen starting an instance of the app in Seq, the following parameters can be supplied.\n\n### All apps\n\n| Property               | Description                                                                        | Template? | Default                      |\n|------------------------|------------------------------------------------------------------------------------|-----------|------------------------------|\n| **From**               | The email address of the sending identity.                                         |           |                              |\n| **To**                 | One or more email addresses that email will be sent to, separated by commas.       | Yes       |                              |\n| **Subject**            | The email subject.                                                                 | Yes       | `{@Message}`                 |\n| **Body**               | The email body.                                                                    | Yes       | See `src/Seq.Mail/Resources` |\n| **Body is plain text** | If checked, the body template will be interpreted as plain text, rather than HTML. |           |                              |\n\n### `Seq.App.Mail.AmazonSes`\n\n| Property          | Description                  | Template? | Default |\n|-------------------|------------------------------|---|---|\n| **Access key id** | An Amazon SES access key id. | | |\n| **Client id**     | An Amazon SES secret key.    | | |\n\n### `Seq.App.Mail.Microsoft365`\n\nTo send mail using the Microsoft 365 app, first create an app registration in Azure. The app must have the `Mail.Send` permission\nfor the Microsoft Graph API.\n\n| Property               | Description                                                                                  | Template? | Default |\n|------------------------|----------------------------------------------------------------------------------------------|---|---|\n| **Tenant id**          | The id of the Azure tenant (directory) in which the app is registered.                       | | |\n| **Client id**          | The app's client (application) id.                                                           | | |\n| **Client secret**      | A client secret belonging to the app registration.                                           | | |\n| **Save to sent items** | If checked, email sent by the app will be saved to the sending identity's sent items folder. | | |\n\n### `Seq.App.Mail.Smtp`\n\n| Property              | Description                                                                             | Template? | Default |\n|-----------------------|-----------------------------------------------------------------------------------------|-----------|---------|\n| **Host**              | The DNS name of the SMTP server.                                                        |           |         |\n| **Port**              | The port to connect to on the SMTP server.                                              |           | 25      |\n| **Protocol security** | Options controlling TLS/SSL security.                                                   |           |         |\n| **Username**          | Name used when authenticating to the SMTP server, if required.                          |           |         |\n| **Password**          | Password used when authenticating to the SMTP server; ignored unless `Username` is set. |           |         |\n\n## Templates\n\nThe Seq mail apps support the [Seq template language](https://docs.datalust.co/docs/template-syntax).\n\nEvent and notification properties can be inserted dynamically into many of the settings listed above, by surrounding them\nwith braces:\n\n```\nError in {Environment}!\n```\n\nHere, `Environment` is an event property, producing a message subject like `Error in Production!`.\n\n### Basic syntax\n\nTemplates support:\n\n * Most built-in Seq event properties, including `@Level`, `@Message`, and `@Exception`,\n * First-class properties of events and alerts, like `Environment` in the example above,\n * Most Seq scalar functions, such as `ToIsoString()`, `Coalesce()`, `Substring()`, `IndexOf()`, and so on,\n * Seq operators such as `=`, `\u003c\u003e`, `\u003c`, `\u003e`, `like`, `in`, `is null`,\n * Constant numbers `123.4`, strings `'abc'`, Boolean `true` and `false`, and `null`,\n * Arrays delimited with brackets `[]` and zero-based indexing,\n * Object literals using braces `{}` that support string-based indexing,\n * Most other Seq expression language features.\n\nLiteral braces in templated text fields can be escaped by doubling, `{{` and `}}`.\n\nFormatting of dates and numbers can be achieved using .NET format strings following a colon, e.g.:\n\n```\nCompleted in {Elapsed:0.00} ms\n```\n\n### Conditionals and repetition\n\nTo conditionally include text, use `{#if expr}`:\n\n```\n{#if Count = 0}\n  Nothing here\n{#else if Count = 1}\n  Only one\n{#else}\n  Found {Count} items\n{#end}\n```\n\nThe `else`/`else if` blocks are optional.\n\nTo iterate over array elements or object properties use `{#each e in expr}` or `{#each k, v in expr}`:\n\n```\n{#each name, value in @Properties}\n  {name} is {value}\n{#delimit}\n  ---\n{#else}\n  No properties\n{#end}\n```\n\nThe `delimit` and `else` blocks are optional.\n\n## Escaping text inserted into HTML message bodies\n\nThe templating system employed by the app does HTML escaping automatically for HTML email bodies. Untrusted \nvalues from log events can be safely inserted into HTML attributes and element bodies, excluding script and \nstyle contexts, in which no safe escaping is possible.\n\n## Development\n\nThe `harness/Seq.Mail.TestHarness` project is a simple console application that enables local/interactive app debugging\nusing Serilog to generate events.\n\nTo run the apps locally under the production app host, but, without installing them into Seq, build with `Build.ps1` then \npipe `seqcli tail` output from your Seq instance to `RunLocalSmtp.ps1`:\n\n```\n./Build.ps1\nseqcli tail --json | ./RunLocalSmtp.ps1\n```\n\nThis assumes that you have `seqcli` configured with the address of your Seq server (`http://localhost:5341` by default),\nand you're running an SMTP server such as [Papercut SMTP](https://github.com/ChangemakerStudios/Papercut-SMTP) on your\nlocal machine at port 25.\n\n## Acknowledgements\n\nTemplating support is based on code from [_Serilog.Expressions_](https://github.com/serilog/serilog-expressions).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatalust%2Fseq-app-mail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatalust%2Fseq-app-mail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatalust%2Fseq-app-mail/lists"}