Deploy a Default Font in Outlook Using Intune
Outlook Classic and New Outlook store font settings in different places. You need two separate methods to cover both.
Outlook Classic
Outlook Classic stores font settings in the registry at:HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\MailSettings
The registry values you need to set are:
ComposeFontComplexComposeFontSimpleReplyFontComplexReplyFontSimpleTextFontComplexTextFontSimple
Step 1: Configure the font on a reference machine
- Open Outlook and go to File > Options > Mail > Stationery and Fonts.
- Set the font to Aptos, size 11 for new mail, reply/forward, and plain text.
- Click OK and close Outlook.
Step 2: Export the registry key
- Open Registry Editor.
- Go to
HKCU\Software\Microsoft\Office\16.0\Common\MailSettings. - Right-click the key and select Export.
- Save the file as
outlook-fonts.reg.
Step 3: Edit the .reg file
Open the file in a text editor and delete any lines that start with:
TemplateMarkCommentsWith
Save the file.
Step 4: Create an install script
Create a file called Install.ps1. The script should import the .reg file on the target device. Then package both files using the Microsoft Win32 Content Prep Tool.
Step 5: Create a detection script
Create Detect-Fonts.ps1. The script should read the registry values and compare them to your expected hex values. This makes sure the policy re-applies if a user changes the font later.
Note: If a user has never set a custom font, the registry keys wonโt exist until your script runs. If theyโve already customized their font, the existing values wonโt match your expected ones. Thatโs why comparing actual hex values matters.
Step 6: Deploy as a Win32 app in Intune
Use these settings when creating the app:
| Setting | Value |
|---|---|
| Install behavior | User |
| Install command | %windir%\sysnative\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass .\Install.ps1 |
| Detection method | Custom script (Detect-Fonts.ps1) |
New Outlook
New Outlook doesnโt use the registry for font settings. Instead, it reads from Exchange Online mailbox settings. Use PowerShell to configure it.
Set the font for a single user
powershellSet-MailboxMessageConfiguration -Identity "user@domain.com" `
-DefaultFontName "Aptos" `
-DefaultFontSize 3
Set the font for all users
powershell$FontSettings = @{
DefaultFontName = "Aptos"
DefaultFontSize = 3
DefaultFontColor = "#000000"
DefaultFontFlags = "Normal"
}
Get-Mailbox -ResultSize Unlimited | ForEach-Object {
Set-MailboxMessageConfiguration -Identity $_.PrimarySmtpAddress @FontSettings
}
Note:
DefaultFontSizeuses HTML sizing (1โ7), not points. Size 3 is roughly 11pt.
Which method do you need?
| Scenario | Method |
|---|---|
| Outlook Classic only | Win32 app with registry import |
| New Outlook / OWA only | Set-MailboxMessageConfiguration |
| Mixed environment | Both methods |
Classic Outlook is supported until at least 2029, so most organizations will need both methods. For ready-made scripts, see the guides at cloudinfra.net and imab.dk.
ย

