Guides

How to Add an Email Signature in Exchange Online (2026)

Add one signature for every user in Exchange Online with a mail flow rule. Exact admin steps, all 23 tokens, an HTML template and PowerShell.

, Founder of Firma November 12, 2026 9 min read

To add an email signature for everyone in Exchange Online, create a mail flow rule in the Exchange admin center (Mail flow → Rules → Add a rule → Apply disclaimers) and paste your signature HTML as the disclaimer text. Exchange adds it to every matching message as it passes through the server, and fills in each sender’s name, title and phone from tokens such as %%DisplayName%% and %%Title%%.

That is the only built-in way to put one signature on every mailbox in Microsoft 365. It works, but it has rules of its own that most guides skip: a 5,000-character cap on the HTML, an exception you must add or signatures stack up in threads, a fallback setting that can bounce mail, and signatures that never appear in Outlook or in Sent Items. This guide covers the exact steps, a template that fits the limits, the PowerShell equivalent, and when the approach stops being enough.

Exchange Online signatures at a glance

Question Answer
Where is it set? Exchange admin center → Mail flow → Rules → Apply disclaimers
Who can set it? An admin with mail flow permissions (for example Exchange Administrator)
Personalized per sender? Yes, through 23 %%token%% fields filled from each user’s directory profile
HTML and images? HTML and inline CSS are allowed; images must be hosted at a public URL
Size limit 5,000 characters of disclaimer text; 8 KB for the whole rule
Does the sender see it in Outlook? No. It is added after sending, so it is not in the compose window or Sent Items
Where does it go in a reply? With append, at the very end of the message, below the quoted thread

Sources: Microsoft’s organization-wide disclaimers in Exchange Online, New-TransportRule and Exchange Online limits, checked November 2026.

How to add an email signature in the Exchange admin center

Before you start, fill in the directory fields your signature will use (see where the token values come from below). Then:

  1. Open the Exchange admin center and go to Mail flow → Rules.
  2. Select Add a rule, then Apply disclaimers.
  3. Name: something you will recognize later, such as Company signature - external.
  4. Apply this rule if: choose The sender → is external/internal → Inside the organization. Rules run on incoming mail too, so this condition stops Exchange from adding your signature to messages people send to you. To sign only external email, add a second condition: The recipient → is external/internal → Outside the organization.
  5. Do the following: keep Apply a disclaimer to the message → append a disclaimer. Select Enter text and paste your signature HTML (template below).
  6. Select Select one next to the fallback action and choose Ignore (why: the fallback setting).
  7. Except if: choose The subject or body → Subject or body matches these text patterns and enter a phrase that only appears in your signature, for example your company’s legal name plus street address. This is what stops a second copy being added on every reply.
  8. Select Next. On Set rule settings, choose Test without Policy Tips for the first run so the rule logs matches without changing mail. Leave Match sender address in message on Header.
  9. Select Next, then Finish. After testing, open the rule and switch Rule mode to Enforce.

For different signatures per team (Sales, Support, Legal), create one rule per team and use The sender → is a member of this group instead of “inside the organization”. Each rule needs its own exception phrase.

A signature template that fits Exchange’s limits

Paste this into Enter text. It uses tables and inline styles because many email clients ignore <style> blocks, and it stays well under the 5,000-character limit so you have room for a logo and a legal line.

<table cellpadding="0" cellspacing="0" style="font-family:Arial,sans-serif;font-size:13px;color:#222222;">
  <tr>
    <td style="padding:12px 0 0 0;">
      <strong style="font-size:14px;">%%DisplayName%%</strong><br>
      %%Title%% | %%Department%%<br>
      %%Company%%<br>
      Phone: %%Phone%% | Mobile: %%MobilePhone%%<br>
      <a href="mailto:%%WindowsEmailAddress%%" style="color:#1a56db;">%%WindowsEmailAddress%%</a>
    </td>
  </tr>
  <tr>
    <td style="padding:8px 0 0 0;">
      <img src="https://www.example.com/logo.png" alt="Example Inc." width="120" height="32">
    </td>
  </tr>
  <tr>
    <td style="padding:8px 0 0 0;font-size:11px;color:#666666;">
      Example Inc., 100 Main Street, Springfield. This email may contain confidential information.
    </td>
  </tr>
</table>

Three things to change before you save:

  • The logo URL. Exchange can’t embed an uploaded file here; the <img> must point to a public HTTPS address you control. Set width and height so clients that block images keep the layout. For sizing, see the email signature size guide.
  • The legal line. Make it unique (legal name plus address works), because it doubles as the exception phrase from step 7.
  • Fields you don’t fill in. Disclaimer text has no if/else logic, so an empty token prints nothing and leaves its label behind (“Mobile: ”). Delete any line whose field is blank for some users, or make one rule per group with fields everyone in it has.

All 23 Exchange Online signature tokens

Exchange replaces each token with the sender’s value at send time. Microsoft documents these:

Contact Organization Address
%%DisplayName%% %%Title%% %%StreetAddress%%
%%FirstName%% %%Department%% %%City%%
%%LastName%% %%Company%% %%StateOrProvince%%
%%Initials%% %%Office%% %%PostalCode%%
%%WindowsEmailAddress%% %%Manager%% %%CountryOrRegion%%
%%UserPrincipalName%% %%Notes%% %%PostOfficeBox%%
%%Phone%%
%%MobilePhone%%
%%HomePhone%%
%%Fax%%
%%Pager%%

There is no token for a photo, LinkedIn URL, pronouns or a booking link. Anything outside this list has to be typed into the HTML, which means the same value for everyone the rule covers.

Where do the token values come from?

From each user’s profile in Microsoft Entra ID. Edit them in the Microsoft 365 admin center under Users → Active users → select the person → Manage contact information, or in the Entra admin center under the user’s Properties. If your directory syncs from on-premises Active Directory, change the values there, because synced attributes can’t be edited in the cloud.

This is the step that makes or breaks the result. A rule with perfect HTML still sends ”| ” and empty lines for anyone whose title or phone was never entered. Export your users (Active users → Export users) and check the columns you plan to use before you switch the rule to Enforce.

Which fallback action should you choose?

The fallback decides what happens when Exchange can’t insert the signature, typically because the message is encrypted or digitally signed.

Fallback What happens Use it when
Ignore The message is delivered without the signature Almost always, for a signature
Wrap (default) The original is attached to a new message that carries the signature Rarely; recipients get an attachment instead of your email
Reject The message bounces back to the sender Only if a legal footer is truly mandatory

Wrap is the default and many tutorials recommend it, but for a branded signature it is the wrong trade: an encrypted message from your lawyer arriving as an attachment is worse than one arriving without a logo. Microsoft also warns against Wrap on rules that touch incoming external mail, because it interferes with Safe Attachments scanning. Another reason to scope the rule to senders inside the organization.

How to create the signature rule with PowerShell

The same rule in Exchange Online PowerShell, useful when you manage several tenants or want the rule in version control:

$html = Get-Content -Raw .signature.html

New-TransportRule -Name "Company signature - external" `
  -FromScope InOrganization `
  -SentToScope NotInOrganization `
  -ApplyHtmlDisclaimerLocation Append `
  -ApplyHtmlDisclaimerText $html `
  -ApplyHtmlDisclaimerFallbackAction Ignore `
  -ExceptIfSubjectOrBodyContainsWords "Example Inc., 100 Main Street" `
  -Mode Audit

-Mode Audit matches “Test without Policy Tips” in the admin center. When the test looks right, run Set-TransportRule "Company signature - external" -Mode Enforce. For a per-team rule, replace -FromScope InOrganization with -FromMemberOf "Sales".

How to test the rule before everyone gets it

  1. While the rule is in test mode, send a few messages and open Mail flow → Message trace in the Exchange admin center to confirm the rule matched.
  2. Switch to Enforce, then send one HTML and one plain-text email to an outside address you can read (a personal Gmail or Outlook.com account works).
  3. Reply to that message from the outside account, then reply again from your work mailbox. You should see one signature, not two. If you see two, the exception phrase doesn’t match the text exactly.
  4. Send from a user with an empty title or mobile number and check what the recipient sees.
  5. Send an internal email and confirm it has no signature, if that is what you configured.

Changes to a rule can take a little while to apply across Exchange Online, so if a test message looks wrong right after a change, wait a few minutes and send it again before you start editing.

What an Exchange signature rule can’t do

Every limit below comes from how mail flow rules work: they edit the message on the server, after it leaves the sender’s Outlook.

  • Senders don’t see it. It is not in the compose window, and the copy in Sent Items is saved before the rule runs, so it has no signature either. People often add their own Outlook signature “to be safe”, and recipients get two.
  • It sits under the whole thread. Append means the end of the message body, so on a reply the signature lands below all the quoted history, not under the new text.
  • The reply exception has a cost. It stops duplicates, but it also skips any reply whose quoted text already contains the signature. In a long thread, only the first message carries it.
  • No conditional fields, photos or per-person links. One HTML block per rule, filled only from the 23 tokens.
  • Every team is another rule. Five departments with different banners means five rules, five exception phrases and five places to update when the logo changes.

For a legal disclaimer, none of this matters much, and a mail flow rule is the right tool. For a branded, personalized signature that people see as they type, it is a stretch.

When to use a signature manager instead

Exchange mail flow rule Each user’s Outlook signature Signature manager (Outlook add-in)
Admin controls it centrally Yes No Yes
Visible while composing No Yes Yes
In Sent Items No Yes Yes
Placed under the new reply text No Yes Yes
Hides empty fields, adds photos and links No Manual Yes
Cost Included Included Paid tool (some have free tiers)

Outlook signatures set by each person look right, but nothing keeps them consistent; the guide to deploying signatures in Microsoft 365 compares all three approaches in more depth.

A signature manager is the middle ground. With Firma’s Microsoft 365 email signature management, an admin designs one template, Firma fills in each person’s name, title, department and phone from the Microsoft directory, and the Firma Outlook add-in, deployed from the Microsoft 365 admin center, inserts the signature while people write in Outlook on desktop, web and mobile. Updating the template updates everyone. It also manages Gmail signatures if part of the company is on Google Workspace, and it is free for up to 2 users. If you are comparing vendors, this list of email signature software for Microsoft 365 covers pricing and add-in versus server-side tools.

Frequently asked questions

Can I set a default Outlook signature for all users from the Microsoft 365 admin center?

No. The admin centers have no setting that writes a signature into each person’s Outlook. The built-in options are an Exchange mail flow rule, which adds text on the server, or asking each user to set their own. Pushing a signature into the compose window for everyone needs an Outlook add-in or another third-party tool.

Why doesn’t my Exchange signature show in Sent Items?

Because Outlook saves the Sent Items copy before the message reaches the mail flow rule. The recipient gets the signature; your copy does not. This is how server-side rules work and there is no setting to change it.

How do I stop the Exchange signature repeating in every reply?

Add an exception to the rule: Except if → The subject or body → Subject or body matches these text patterns, with a phrase that only exists in your signature. Microsoft recommends this in its disclaimer documentation. The trade-off is that replies in a thread that already contains the signature won’t get another one.

Can an Exchange Online signature include a logo?

Yes, with an <img> tag pointing to an image hosted at a public HTTPS URL. You can’t upload the image into the rule. Some recipients’ email clients block remote images until they choose to show them, so set the width, height and alt text.

Why is there a blank line or an empty label in my signature?

The token’s field is empty for that user. Exchange has no way to hide a line when a value is missing, so either fill in the field in the user’s profile or remove that line from the HTML.

Does this work the same in Exchange Server on-premises?

The idea is the same (a transport rule with a disclaimer action), but the admin console and some limits differ. This guide covers Exchange Online in Microsoft 365. For one person’s own signature in any version of Outlook, see how to add or change a signature in Outlook.

Cristian Cabrera, Founder of Firma

I built Firma so your team can have beautiful, consistent, professional email signatures — while you drink your coffee ☕️ instead of setting them up by hand for every new hire. It works like a charm with Google Workspace and Microsoft 365, and it doubles as a new marketing channel — announce a launch or promo right from everyone's signature. 😍 Here's my if you'd like to connect.