diff --git a/Notify_office365.md b/Notify_office365.md new file mode 100644 index 0000000..c3abb83 --- /dev/null +++ b/Notify_office365.md @@ -0,0 +1,48 @@ +## Office 365 Notifications +* **Source**: n/a +* **Icon Support**: no +* **Attachment Support**: no +* **Message Format**: Text +* **Message Limit**: 32768 Characters per message + +## Syntax: + +- `o365://{tenant_id}:{account_email}/{client_id}/{client_secret}/` +- `o365://{tenant_id}:{account_email}/{client_id}/{client_secret}/{targets}` + +### Parameter Breakdown +| Variable | Required | Description +| ----------- | -------- | ----------- +| tenant_id | Yes | The **Tenant ID** Associated with your Azure Application you created. This can also be referred to as your **Directory ID**. +| account_email | Yes | The **Email** Associated with your Azure account. +| client_id | Yes | The **Client ID** Associated with your Azure Application you created. This can also be referred to as your **Application ID**. +| client_secret | Yes | You will need to generate one of these; this can be done through the Azure portal (Also documented below). +| from | No | If you want the email address *ReplyTo* address to be something other then your own email address, then you can specify it here. +| to | No | This will enforce (or set the address) the email is sent To. By default the email is sent to the address identified by the `account_email` + +**Notes:** +* If no `targets` are specified, then the notification is just sent to the address identified by `{account_email}` +* Unfortunately the `client_secret` contains a lot of characters that can drastically conflict with standard URL rules (and thus Apprise might have difficulty detecting your client secret). The `?` and `@` characters can get generated by Microsoft and will almost definitely cause you issues. + * Consider encoding this `client secret` before putting it into your Apprise URL. Encoding the URL can be as simple as just pasting it into the form on [this website](https://www.url-encode-decode.com/). + * You can also just manually escape these characters on your Apprise URL yourself manually ([explained here](https://github.com/caronc/apprise/wiki/Troubleshooting#special-characters-and-url-conflicts)). Simply swap all instances of: + * `?` with `%3F` + * `@` with `%40` + +### Tenant ID, Client ID, and Secret ID Acquisition +You will need to have a valid Microsoft Personal Account AND you will require Administrative access unfortunately (to access the **Mail.Send** Application Permission). More details can be [found here](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-client-creds) about registering your app with Azure. + +But basically it amounts to: + +1. From the **Azure Portal** go to **Microsoft Active Directory** -> **App Registrations** ([alt link](https://apps.dev.microsoft.com/portal/register-app)) +1. Click **new** -> _give any name (your choice) in Name field_ -> select _personal Microsoft accounts only_ --> **Register** +1. From here (the **Overview** panel) you can acquire both the Directory (`tenant`) ID and the Application (`client_id') you will need. +1. To create your `client_secret` , go to **Active Directory** -> **Certificate & Tokens** -> **New client secret** + * The `client_secret` is an auto-generated string which may have `@` and/or `?` character(s) in it. You will need to encode these characters to when pasting this into your Apprise URL. See the note section above for more details on how to do this. +1. Now need to set permission **Active directory** -> **API permissions** -> **Add permission**. +1. Click on **Microsoft Graph** +1. Click on **Application Permissions** and search for **Mail.Send**; You will want to check this box too on the match found. +1. Set the Redirect URI (Web) to the following: `https://login.microsoftonline.com/common/oauth2/nativeclient` + 1. You can do this from the **Authentication** -> **Add a platform** + 1. Choose **Web Application**. + 1. Enter the URI `https://login.microsoftonline.com/common/oauth2/nativeclient` +1. Now you're good to go. :slightly_smiling_face: \ No newline at end of file