> ## Documentation Index
> Fetch the complete documentation index at: https://help.scribe-mail.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft 365: Server Side

> Set up server-side email signature deployment for Microsoft 365. Emails route through Scribe's secure servers to add signatures from any device or client.

Server-side installation automatically adds signatures to emails from any device or client.

<Info>
  **Centralized one-click installation.** No teammate action needed. Users don't see signatures when composing emails. Your emails are processed through Scribe's secure servers for signature injection.
</Info>

<Info>
  **Supported platforms:** Web, Desktop, Apple Mail, iOS, Android
</Info>

## How it works

Server-side installation changes your mail routing, not your teammates' mailboxes. Nothing is installed on their devices, and no add-in runs in their email client. Instead, the setup below adds one hop to your outbound mail flow, and the signature is added to each message while it is in transit.

1. **A teammate sends an email.** Exchange Online accepts it from whatever client or device they used, so the same rule covers web, desktop, Apple Mail, iOS and Android. Tools that send through a teammate's mailbox are covered too: HubSpot sales emails, and any other CRM or sequencer connected to the mailbox, pick up the signature with no extra setup, as long as the From address belongs to a teammate whose signature you have installed. A tool that sends from its own servers instead of through Exchange Online, such as HubSpot marketing email, never reaches this rule and gets no signature.
2. **Exchange Online routes the message to Scribe.** The mail flow rule you create below matches senders located inside your organization and redirects them to the outbound connector, which routes to the smart host `smtp.server.scribe-mail.com` over TLS.
3. **Scribe adds the signature.** Scribe inserts the teammate's published signature, choosing the right [variant](/en/signature-variants) for the context, then re-signs the message so it still authenticates after the change, and stamps it with an `X-Scribe-Processed` header.
4. **The message returns to Exchange Online.** Scribe hands it back through the inbound connector, which is configured to accept connections only from Scribe's two IP addresses.
5. **Exchange Online delivers it.** The `X-Scribe-Processed` header matches the rule's exception, so the rule does not fire a second time and the message goes out to the recipient the same way any other message does.

Scribe adds the signature and its own headers: `X-Scribe-Processed`, a routing header telling the relay where to hand the message back, a refreshed `DKIM-Signature`, an ARC chain, and the `Content-Type` matching the rewritten body. Your recipients, subject, attachments and the text your teammate wrote are passed through unchanged.

## Installation guide

<Warning>
  This is an advanced user feature. IT support is required to set up this integration.

  * Users don't see signatures when composing an email.
  * Your emails are processed through Scribe's secure servers to install signatures. Scribe cannot read or edit your emails.
  * You can combine [cloud-based integration](/en/integrations/signatures/microsoft-365-client-side) with server-side integration. If both are connected, Scribe defaults to cloud-based integration so users can see their signatures when composing emails.
</Warning>

### Prerequisites

* **Microsoft 365 admin access** (Exchange admin center)
* At least one signature created in Scribe

The setup involves four parts: creating an outbound connector, creating an inbound connector, creating a mail flow rule, and configuring DKIM.

<Steps>
  <Step title="Create an outbound connector">
    To route emails through Scribe's secure servers, create an outbound connector in your Exchange admin. In the Exchange admin interface, go to **Mail flow → Connectors** and click **"Add a connector."**

    <Frame caption="Exchange admin: Connectors page">
      <img src="https://mintcdn.com/scribe/I5V9iTucPI_EY3nq/integrations/signatures/images/m365-server-step-1.png?fit=max&auto=format&n=I5V9iTucPI_EY3nq&q=85&s=255c878df084c6fb908625677f4a985e" alt="Exchange admin Connectors page with Add a connector button highlighted" width="1536" height="649" data-path="integrations/signatures/images/m365-server-step-1.png" />
    </Frame>
  </Step>

  <Step title="Select connection type">
    Select **"Office 365"** for connection from and **"Partner organization"** for connection to.

    <Frame caption="New connector: Connection type selection">
      <img src="https://mintcdn.com/scribe/I5V9iTucPI_EY3nq/integrations/signatures/images/m365-server-step-2.png?fit=max&auto=format&n=I5V9iTucPI_EY3nq&q=85&s=76c04e730b6277e01eaed5e1741dfee7" alt="New connector dialog with Office 365 selected for connection from and Partner organization for connection to" className="mx-auto" style={{ width:"70%" }} width="1244" height="1000" data-path="integrations/signatures/images/m365-server-step-2.png" />
    </Frame>
  </Step>

  <Step title="Configure connector details">
    Enter a connector name and description. Optionally, check **"Turn it on"** to enable immediately.

    * **Name:** `Scribe signature outbound`
    * **Description:** `Scribe signature outbound`

    <Frame caption="Connector name and description">
      <img src="https://mintcdn.com/scribe/I5V9iTucPI_EY3nq/integrations/signatures/images/m365-server-step-3.png?fit=max&auto=format&n=I5V9iTucPI_EY3nq&q=85&s=22c1fdcf7d7756f5f825add47a074557" alt="Connector name form with Scribe signature outbound entered" className="mx-auto" style={{ width:"73%" }} width="1368" height="1162" data-path="integrations/signatures/images/m365-server-step-3.png" />
    </Frame>
  </Step>

  <Step title="Select use of connector">
    Select **"Only when I have a transport rule set up that redirects messages to this connector."**

    <Frame caption="Use of connector selection">
      <img src="https://mintcdn.com/scribe/I5V9iTucPI_EY3nq/integrations/signatures/images/m365-server-step-4.png?fit=max&auto=format&n=I5V9iTucPI_EY3nq&q=85&s=f7e81559522f33a914918ca8fa7811a2" alt="Use of connector page with first option selected" className="mx-auto" style={{ width:"81%" }} width="1290" height="764" data-path="integrations/signatures/images/m365-server-step-4.png" />
    </Frame>
  </Step>

  <Step title="Configure routing">
    Select **"Route email through these smart hosts"** and add the following host to the list:

    ```text theme={null}
    smtp.server.scribe-mail.com
    ```

    <Frame caption="Routing configuration with Scribe smart host">
      <img src="https://mintcdn.com/scribe/I5V9iTucPI_EY3nq/integrations/signatures/images/m365-server-step-5.png?fit=max&auto=format&n=I5V9iTucPI_EY3nq&q=85&s=acc6e48b41d8f15dee42b8d0ef924238" alt="Routing page with smtp.server.scribe-mail.com added as smart host" className="mx-auto" style={{ width:"85%" }} width="1346" height="1020" data-path="integrations/signatures/images/m365-server-step-5.png" />
    </Frame>
  </Step>

  <Step title="Configure security restrictions">
    Select **"Always use Transport Layer Security (TLS) to secure the connection (recommended)"**, then:

    **a.** Select: **"Issued by a trusted certificate authority (CA)."**

    **b.** Check: **"Add the subject name or subject alternative name (SAN) matches this domain name."**

    **c.** Enter the following in the field:

    ```text theme={null}
    smtp.server.scribe-mail.com
    ```

    <Frame caption="Security restrictions: TLS configuration">
      <img src="https://mintcdn.com/scribe/I5V9iTucPI_EY3nq/integrations/signatures/images/m365-server-step-6.png?fit=max&auto=format&n=I5V9iTucPI_EY3nq&q=85&s=688ac9561fb9c93089a7464e0d9515ba" alt="Security restrictions page with TLS enabled and domain name configured" className="mx-auto" style={{ width:"87%" }} width="1368" height="952" data-path="integrations/signatures/images/m365-server-step-6.png" />
    </Frame>
  </Step>

  <Step title="Validate the connector">
    Enter the following as the test email and start the validation:

    ```text theme={null}
    scribe-o365-test@scribe-mail.com
    ```

    <Note>
      Sometimes the validation fails, but you can safely continue without validating.
    </Note>

    <Frame caption="Validation email configuration">
      <img src="https://mintcdn.com/scribe/I5V9iTucPI_EY3nq/integrations/signatures/images/m365-server-step-7.png?fit=max&auto=format&n=I5V9iTucPI_EY3nq&q=85&s=cf2d543da498007237354d74d3d4f499" alt="Validation email page with scribe-o365-test@scribe-mail.com entered" className="mx-auto" style={{ width:"79%" }} width="1378" height="894" data-path="integrations/signatures/images/m365-server-step-7.png" />
    </Frame>
  </Step>

  <Step title="Create an inbound connector">
    In your Exchange admin interface, go to **Mail flow → Connectors** and click **"Add connector."** Select connection from **"Your organization's email server"** (connection to will be set to Office 365 automatically).

    <Frame caption="New inbound connector: Connection type selection">
      <img src="https://mintcdn.com/scribe/I5V9iTucPI_EY3nq/integrations/signatures/images/m365-server-step-8.png?fit=max&auto=format&n=I5V9iTucPI_EY3nq&q=85&s=a3c14cf447bb2becdfea737d023dcbc9" alt="New connector dialog with Your organization's email server selected" className="mx-auto" style={{ width:"77%" }} width="1254" height="932" data-path="integrations/signatures/images/m365-server-step-8.png" />
    </Frame>
  </Step>

  <Step title="Configure inbound connector details">
    Enter a name and description. You can also check **"Turn it on"** to enable the connector immediately.

    * **Name:** `Scribe signature inbound`
    * **Description:** `Scribe signature inbound`

    <Frame caption="Inbound connector name and description">
      <img src="https://mintcdn.com/scribe/I5V9iTucPI_EY3nq/integrations/signatures/images/m365-server-step-9.png?fit=max&auto=format&n=I5V9iTucPI_EY3nq&q=85&s=29d669d8ecb4252edbb205076c703dca" alt="Connector name form with Scribe signature inbound entered" className="mx-auto" style={{ width:"77%" }} width="1388" height="1214" data-path="integrations/signatures/images/m365-server-step-9.png" />
    </Frame>
  </Step>

  <Step title="Authenticate sent email">
    Select **"By verifying that the IP address of the sending server matches one of the following IP addresses, which belong exclusively to your organization."**

    Add the two following IPs to the list:

    ```text theme={null}
    15.236.243.144
    ```

    ```text theme={null}
    51.44.50.107
    ```

    <Frame caption="Authenticating sent email: IP verification">
      <img src="https://mintcdn.com/scribe/I5V9iTucPI_EY3nq/integrations/signatures/images/m365-server-step-10.png?fit=max&auto=format&n=I5V9iTucPI_EY3nq&q=85&s=bf2dea3d93da58dc03bd4bea661aef03" alt="Authenticating sent email page with both Scribe IPs added" className="mx-auto" style={{ width:"84%" }} width="1282" height="1166" data-path="integrations/signatures/images/m365-server-step-10.png" />
    </Frame>
  </Step>

  <Step title="Create a mail flow rule">
    In your Exchange admin interface, go to **Mail flow → Rules**.

    **a.** Click **"Add a rule"**

    **b.** Click **"Create a new rule"**

    <Frame caption="Rules page: Create a new rule">
      <img src="https://mintcdn.com/scribe/I5V9iTucPI_EY3nq/integrations/signatures/images/m365-server-step-11.png?fit=max&auto=format&n=I5V9iTucPI_EY3nq&q=85&s=22c72e34f8337388deb92ea47e25001f" alt="Exchange admin Rules page with Add a rule dropdown showing Create a new rule option" className="mx-auto" style={{ width:"89%" }} width="1536" height="732" data-path="integrations/signatures/images/m365-server-step-11.png" />
    </Frame>
  </Step>

  <Step title="Set rule conditions">
    Fill in the rule form as follows:

    * **Name:** `Route outbound mail via Scribe Signature`
    * **Apply this rule if:** The sender → is external/internal → The sender is located "InOrganization"
    * **Do the following:** Redirect the message to → the following connector → select **"Scribe signature outbound"**
    * **Except if:** The message headers → match these text patterns → `X-Scribe-Processed` message header matches `Processed`

    The exception prevents Scribe from processing your emails multiple times.

    <Frame caption="Set rule conditions form">
      <img src="https://mintcdn.com/scribe/pPEM6OumC_w_nVlW/integrations/signatures/images/m365-server-step-12.png?fit=max&auto=format&n=pPEM6OumC_w_nVlW&q=85&s=e8cdd53b9d4bb0d3e17ce5f4e7eed839" alt="Set rule conditions form with all fields configured" className="mx-auto" style={{ width:"82%" }} width="1466" height="1330" data-path="integrations/signatures/images/m365-server-step-12.png" />
    </Frame>
  </Step>

  <Step title="Enable the rule">
    On the next step, you can leave the rule settings as is. Review your rule and save it. From the rules list, select your rule and enable it.

    <Frame caption="Enable the mail flow rule">
      <img src="https://mintcdn.com/scribe/I5V9iTucPI_EY3nq/integrations/signatures/images/m365-server-step-13.png?fit=max&auto=format&n=I5V9iTucPI_EY3nq&q=85&s=8275d3e14d7007606918840581bb6381" alt="Rules list showing the Scribe rule with Enable option" className="mx-auto" style={{ width:"92%" }} width="1536" height="748" data-path="integrations/signatures/images/m365-server-step-13.png" />
    </Frame>
  </Step>

  <Step title="Configure DKIM">
    Configure DKIM for your [sending domains](/en/configure-your-sending-domain) to keep emails out of spam folders and avoid missing assets such as images and links.

    Click **Configure DKIM** in Scribe to start the configuration.

    <Frame caption="Configure DKIM button in Scribe">
      <img src="https://mintcdn.com/scribe/Z_G2D9X-Tlrxu_Eh/images/configure-dkim-button.png?fit=max&auto=format&n=Z_G2D9X-Tlrxu_Eh&q=85&s=29da5086132e439852c319009f3d4769" alt="Configure DKIM button in Scribe" width="1438" height="466" data-path="images/configure-dkim-button.png" />
    </Frame>
  </Step>

  <Step title="Install team signatures">
    From your signatures list, [install all signatures at once for your teammates](/en/install-signatures) or install them one by one for a progressive rollout.

    <Frame caption="Scribe signatures list with Install Signatures button">
      <img src="https://mintcdn.com/scribe/I5V9iTucPI_EY3nq/integrations/signatures/images/m365-server-step-15.png?fit=max&auto=format&n=I5V9iTucPI_EY3nq&q=85&s=4ee42dd8f9ba1f8b81019870a62aadda" alt="Scribe signatures list with Install Signatures button highlighted" width="2564" height="1860" data-path="integrations/signatures/images/m365-server-step-15.png" />
    </Frame>
  </Step>
</Steps>

## IT and security FAQ

Questions that come up most often when an IT team reviews this integration.

<AccordionGroup>
  <Accordion title="Which emails are routed through Scribe?">
    Only what the mail flow rule matches: messages whose sender is located `InOrganization`. Mail arriving from outside your tenant is never redirected to Scribe.

    The rule also carries one exception, set when you fill in the rule conditions: messages already stamped with the `X-Scribe-Processed` header are skipped, so nothing is processed twice.
  </Accordion>

  <Accordion title="Is the connection to Scribe encrypted?">
    Yes, in both directions, and the setup enforces it. The outbound connector uses **Always use Transport Layer Security (TLS)**, requires a certificate issued by a trusted certificate authority, and checks that the subject name or SAN matches `smtp.server.scribe-mail.com`. The inbound connector accepts mail back only from Scribe's own IP addresses.
  </Accordion>

  <Accordion title="What do we need to allow through the firewall?">
    Outbound, the connector routes to the Scribe smart host:

    ```text theme={null}
    smtp.server.scribe-mail.com
    ```

    Inbound, Scribe returns processed mail from two fixed IP addresses, which are the only ones the inbound connector is configured to accept:

    ```text theme={null}
    15.236.243.144
    51.44.50.107
    ```
  </Accordion>

  <Accordion title="Does routing through Scribe affect SPF, DKIM or DMARC?">
    It affects DKIM, and the **Configure DKIM** step in the guide is what handles it. Inserting a signature changes the message body, which invalidates the DKIM signature Exchange Online applied before the message left. Scribe therefore re-signs the message on the way back out.

    Once DKIM is configured, two things are added to every processed message:

    * **A fresh `DKIM-Signature`**, signed with a key Scribe generates for your domain and published as a `scribe._domainkey` record. It covers the `From`, `To`, `Cc`, `Subject` and `Message-ID` headers along with the body.
    * **An ARC chain** ([RFC 8617](https://datatracker.ietf.org/doc/html/rfc8617)): `ARC-Authentication-Results`, `ARC-Message-Signature` and `ARC-Seal`. These record the authentication results the message carried when Scribe received it, so a receiving server can tell that an authorized intermediary modified it rather than reading the change as tampering.

    SPF is unaffected, because Exchange Online still performs the final delivery and the message reaches your recipient from Microsoft's own sending infrastructure.

    Re-signing only happens once your DKIM record is validated, which is why the guide treats that step as required rather than optional. Skip it and your recipients receive mail whose original signature no longer verifies.
  </Accordion>

  <Accordion title="What stops a message being processed twice?">
    Two things. Scribe stamps every message it handles with an `X-Scribe-Processed` header, and the mail flow rule carries an exception for messages whose headers match it, so a message coming back from Scribe no longer triggers the redirect.

    As a second guard, Scribe checks whether the body already carries the signature before inserting one. A message that reaches it twice still goes out with a single signature.
  </Accordion>

  <Accordion title="The connector validation failed. Is the setup broken?">
    Not necessarily. Microsoft's validation sends a probe message to `scribe-o365-test@scribe-mail.com` and it does not always complete, even when routing is correct. You can save the connector and continue. Confirm the setup instead by sending a real email once the mail flow rule is enabled and checking that the recipient sees the signature.
  </Accordion>

  <Accordion title="Why can't teammates see the signature while composing?">
    Because the signature is added after the message leaves the mailbox, not in the compose window. For the same reason, the copy saved in the sender's Sent Items folder is the version from before Scribe processed it, so it does not show the signature either. The recipient always receives the full signature.

    If compose visibility matters to your teams, connect the [cloud-based integration](/en/integrations/signatures/microsoft-365-client-side) as well. When both are connected, Scribe defaults to cloud-based so teammates see their signature while writing, and server side keeps covering the clients that cloud-based cannot reach.
  </Accordion>

  <Accordion title="Do replies and internal emails get a different signature?">
    Yes, if you publish them. [Signature variants](/en/signature-variants) work with server-side installation, and Scribe picks one as it processes each message:

    * **On-reply**, when the subject starts with a reply or forward prefix such as `Re:`, `Fw:` or `Fwd:`, including the localized equivalents.
    * **Internal**, when every recipient is on the same domain as the sender.
    * **Primary** in every other case.
  </Accordion>

  <Accordion title="What does Scribe do with our email content?">
    Scribe inserts the signature, re-signs the message and hands it straight back to Exchange Online. It does not act on what your teammates write: the recipients, the subject, the attachments and the body text are passed through unchanged.

    Scribe's controls around this are verified as part of its [SOC 2 Type II process](/en/what-scribe-does-concerning-security). See [Product security](/en/security/product-security) and [Infrastructure security](/en/security/infrastructure-security) for the detail your security review will ask for, or the [Trust Center](https://security.scribe-mail.com) for the certifications themselves.
  </Accordion>

  <Accordion title="How do we roll it back?">
    Disable the mail flow rule in the Exchange admin center. Mail then leaves Exchange Online directly again, with no Scribe hop and no signature added. The two connectors can stay in place, unused, until you decide whether to remove them.
  </Accordion>
</AccordionGroup>

## Related articles

* [Integrations overview](/en/integrations-overview): all the ways to deploy Scribe signatures, cloud or server side.
* [Google Workspace (server side)](/en/integrations/signatures/google-workspace-server-side): route mail through Scribe for all-device coverage.
* [Signature variants](/en/signature-variants): on-reply and internal variants for Outlook and server side.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.