Outlook Taskbar Notifier is a Windows taskbar application that notifies you of unread emails in an Outlook folder by showing an overlay badge.
Compared to Outlook's default desktop notifications you are less likely to miss unread emails even after leaving your seat. If you use folders to receive notifications from some web services (Jira, GitHub, GitLab etc.) you can make a dedicated notifier for each, assign the icons you like and add thumb buttons to quickly access the sites. They will work like small desktop apps for the services.
- Notifies unread email count for an Outlook folder
- Customizable icons and badge colors
- Customizable actions performed when the notifier is clicked
- Thumb buttons with customizable actions
- Tested on Windows 10/11 and Powershell 5.1
- Outlook desktop app needs to be installed
- Download and extract the zip or clone this repository anywhere you like
- Copy and edit sample/settings.ps1 (You have to edit
folderPath
at least. See Settings.) - Run
tools/create_shortcut.bat
, select your settings file and save the shortcut - Run the shortcut
You can customize the behavior by a settings file. A sample settings file is placed at sample/settings.ps1.
outlook = @{
folderPath = "\\[email protected]\folder-name"
}
folderPath
is a path of the outlook folder that the notifier monitors. You can list all your folder paths by running tools/list_outlook_folders.bat
.
iconPath = ".\icon.png"
An icon file used for the title bar. The image is converted to .ico
file during the shortcut creation and also used as a shortcut icon. .bmp
, .png
, .tif
, .gif
and .jpg
with single resolution are supported.
overlayIcon = @{
size = 20.0
lineWidth = 1.0
backgroundColor = "DeepPink"
textColor = "White"
}
You can change the unread badge size and color. Available WPF color names are listed here: https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.colors?view=net-5.0
If you want to hide the unread number, set textColor
to "Transparent"
.
flashTaskbar = @{
enable = $true
rateInMillisecond = 300
count = 2
}
You can change the flash rate and count or you can completely disable this feature.
doNotDisturb = @{
globalMode = $true
}
Do Not Disturb mode can be turned on by ToggleDoNotDisturb
click action. In Do Not Disturb mode, unread count update and icon flashing are paused and it's indicated by "D"
badge. If globalMode
is $true
, Do Not Disturb status is shared between all the notifier instances. If globalMode
is $false
, the notifier ignores the global Do Not Disturb status and you can control it independently.
clickActions = @(
,@("FocusOnFolder")
)
When the notifier is clicked, actions you specify here are executed sequentially. If an action fails, the subsequent actions will not be executed.
Action Name | Description | When does it succeed? |
---|---|---|
FocusOnFolder | Opens the Outlook folder that the notifier is monitoring. | Always. |
OpenNewestUnread | Opens the newest unread email. | When the mail is opened. |
OpenOldestUnread | Opens the oldest unread email. | When the mail is opened. |
OpenUnreadIfOnlyOne | Opens an unread email if there is only one. | When the unread count is 1 and the mail is opened. |
MarkAllAsRead | Marks all emails in the folder as read. | Always. |
ToggleDoNotDisturb | Toggles Do Not Disturb mode. | Always. |
FocusOnApp | Focuses on the specified app window. An app name is specified by an argument which is a process name that Get-Process PowerShell command returns. Normally it's an executable file name without ".exe" (e.g. "outlook" , "chrome" , "firefox" ). |
When the app exists. |
SendKeysToAppInFocus | Sends keyboard inputs to the app in focus. The key string format follows Windows.Forms.SendKeys format: https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.sendkeys?view=net-5.0 | Always. |
SleepMilliseconds | Waits for specified milliseconds to tweak the timing for SendKeys. | Always. |
RunCommand | Runs any executable with arguments. | Always. |
RunCommandAndWait | Runs any executable with arguments and waits until the process finishes. | Always. |
RunCommandWithNewWindow | Runs any executable in a new window with arguments. | Always. |
RunCommandAndWaitWithNewWindow | Runs any executable in a new window with arguments and waits until the process finishes. | Always. |
Or | Executes actions specified as arguments sequentially and returns when an action succeeds. | When one of the actions succeeds. |
-
Marks all as read and opens a web page. Recommended for web services that have notifications pages but don't support desktop notifications.
# Opens GitHub notifications page. clickActions = @( ,@("MarkAllAsRead") ,@("RunCommand", '"C:\Program Files\Mozilla Firefox\firefox.exe"', "-url", "https://github.com/notifications") )
-
Marks all as read and sends keys to an app. Recommended for services that have shortcut commands to their notifications page.
# Opens GitHub notifications page by sending shortcut keys to a pinned tab in Chrome. clickActions = @( ,@("MarkAllAsRead") ,@("FocusOnApp", "chrome") ,@("SendKeysToAppInFocus", "^1") ,@("SleepMilliseconds", 100) ,@("SendKeysToAppInFocus", "gn") )
-
Opens an unread mail if there is only one. Otherwise opens the folder.
clickActions = @( ,@("Or", @("OpenUnreadIfOnlyOne"), @("FocusOnFolder")) )
thumbButtons = @(
,@{
description = "Mark all as read"
iconPath = ".\mark_read.png"
clickActions = @(
,@("MarkAllAsRead")
)
}
)
You can add maximum 7 thumb buttons and define actions performed when they are clicked. The formats of iconPath
and clickActions
are the same as before.
unreadItemsSummary = @{
enable = $true
maxItemCount = 10
maxItemCharacterCount = 32
}
Titles of unread emails are displayed on top of the thumbnail window.
treatAllAsUnread = $false
If this is set to $true
, all of the emails in the folder are treated as unread. The badge count indicates the number of emails, not the actual unread count. This is useful for Follow up Search Folders.
Lists all the Outlook folder paths that the notifier can monitor. Copy one of the folder paths and paste it in your settings file.
This tool takes a settings file and creates a shortcut to run the notifier. If you want to create another notifier that monitors another Outlook folder, you just need to create a settings file and run this tool again.
Converts an image to .ico
file. When you want to update the icon of the shortcut, run this tool.
If the notifier cannot connect to Outlook, "E"
badge is shown to indicate the erorr. When this or any other issues happen, right click the notifier icon and press Run with debug console
. The messages on the console might help you find the cause of the issue. If it doesn't help, please create an issue on GitHub.
The sample icons except icon.png were downloaded from Google Material Icons which are distributed under Apache License, Version 2.0.