Support

    Documentation

    User guide and IT administration reference for OpenMSG Viewer.

    Getting Started

    Installation

    The consumer edition of OpenMSG is distributed through the Microsoft Store. No manual installer or elevated permissions are required. Enterprise builds are distributed as MSIX packages outside the Store for Intune, SCCM, and direct deployment.

    1. Open the Microsoft Store on Windows 10 (version 1809, build 17763.0+) or Windows 11.
    2. Search for OpenMSG, or follow the link below.
    3. Click Get. The app installs automatically (~15 MB).

    System Requirements

    Operating SystemWindows 10 (version 1809, build 17763.0 or later) or Windows 11
    Architecturex64
    Disk Space~50 MB installed
    DependenciesMicrosoft Edge WebView2 Evergreen runtime (preinstalled on Windows 11 and most Windows 10 systems)

    Set as Default App

    To open .msg files automatically with OpenMSG:

    1. Right-click any .msg file in Explorer.
    2. Select Open with → Choose another app.
    3. Select OpenMSG from the list.
    4. Tick Always use this app to open .msg files.

    First-Launch EULA

    On first launch, OpenMSG shows an End User Licence Agreement and Privacy Policy acceptance screen. Acceptance is stored per user. Managed deployments can suppress the prompt for all users via the AcceptEula and AcceptPrivacyPolicy registry values.

    Using OpenMSG

    Opening a File

    There are four ways to open an MSG file:

    • Double-click — if OpenMSG is set as the default app, the file opens directly.
    • File picker — launch OpenMSG without a file to see the file picker. Click Open MSG File to browse.
    • Drag and drop — drop one or more .msg files onto the OpenMSG window.
    • Command line / file association — pass the file path as the first argument: OpenMSG.exe "C:\path\to\email.msg".

    Email View

    Once a file is open, the main window shows:

    • Header panel — sender name and avatar initials, email address, subject, sent date, To, CC, and BCC recipients.
    • HTML body — rendered in an embedded WebView2 control. Inline images (CID references) are resolved from temporary local files. Emails without an HTML body are shown in a simple placeholder view.
    • Attachment panel — lists all attachments with their file-type icon, filename, and size. See the Attachments section for details.
    • Full viewer — for extremely large messages whose body exceeds WebView2's 16,384 px rendering limit, a warning bar appears with an Open in Browser button that renders the email body in a larger pop-out window, inheriting the current window size.

    Light / Dark Theme

    A theme toggle button in the toolbar switches between Light and Dark mode. The choice is persisted across sessions. IT administrators can lock or pre-set the theme via the ForceTheme / DefaultTheme registry values.

    Printing

    The toolbar Print button renders the email to PDF and opens it in the default browser, ready to save or send. Print branding can be removed via HidePrintBranding, and the feature disabled entirely via DisableEmailPrint.

    Attachments

    Attachments are extracted to a private temporary folder when the MSG file is opened. The folder is created fresh for each file and deleted automatically when the app closes.

    Opening an Attachment

    Click the attachment button to open it in its default Windows application. If the file extension is not in the safe list, a warning dialog is shown before opening. See Security for how the safe list works.

    Saving an Attachment

    Click the chevron (▾) on the right side of any attachment button to reveal the context menu, then select Save. A standard Windows Save dialog opens, pre-filled with the original filename. The Save option can be disabled by IT via the DisableAttachmentSave registry value.

    Saving All Attachments

    The Save all button in the attachment panel downloads every attachment at once into a folder you choose. The total number of attachments extracted is capped by the MaxAttachmentCount registry value.

    Printing Attachments

    The attachment context menu also offers Print (for any attachment except nested .msg files), sending the file to the default print handler. Printing can be disabled by IT via DisableAttachmentPrint.

    Nested MSG Attachments

    MSG files embedded inside other MSG files (forwarded or attached emails) are listed in the attachment panel like any other file. Opening them launches a new instance of OpenMSG.

    Security

    HTML Sanitisation

    Before the email body is passed to the WebView renderer, OpenMSG sanitises the HTML:

    • Inline JavaScript event handlers (onclick, onerror, onload, etc.) are stripped.
    • javascript: hrefs and srcs are replaced with #.
    • <meta http-equiv="refresh"> elements are removed to prevent auto-redirects.
    • Right-click context menus inside the rendered body are disabled.
    • All attempts by email content to open new windows or popups are intercepted and redirected to the system browser.
    • By default (BlockThirdPartyAssets is enabled), a strict Content Security Policy is injected, preventing external images and resources from loading. Users can still reveal external content for a single message via the Show content button, unless AllowExternalContentOverride is disabled.
    JavaScript sanitisation is enabled by default and is the recommended setting for all deployments. It can be disabled via AllowJavaScriptInEmails, but doing so is not advised.

    Attachment Extension Allowlist

    Every attachment is checked against a configurable list of safe extensions before being opened. The default list is:

    .pdf .docx .xlsx .pptx .png .jpg .jpeg .gif .txt .csv .rtf .msg

    Attachments outside this list show a warning dialog. With BlockUnsafeAttachments enabled they are blocked entirely. The list is customisable via the SafeAttachments registry value.

    Magic Bytes Verification

    Even for files within the safe extension list, the first bytes of the file are read and compared against known file signatures. A file claiming to be a PDF but containing a Windows PE header (MZ) is blocked and a "Spoofed Attachment Blocked" error is shown. This protects against RTLO (Right-to-Left Override) filename spoofing attacks.

    Unicode Bidirectional Spoofing Protection

    Attachment filenames are scanned for Unicode bidirectional control characters (including U+202E, the Right-to-Left Override) before any extension check is performed. A filename containing these characters is treated as unsafe regardless of the claimed extension.

    Windows Event Log Audit Trail

    OpenMSG writes an audit trail to the Windows Event Log (source OpenMSG in the Application log), covering file opens, attachment events, and link handling. The log source must be registered by an administrator before events are recorded:

    New-EventLog -LogName Application -Source "OpenMSG"

    If the source is not registered, audit events are silently skipped. Auditing can be disabled via DisableEventLog.

    IT & Enterprise Configuration

    Enterprise tier required. All registry and Group Policy configuration features described in this section are exclusive to the Enterprise build and require a valid commercial licence. The consumer (Microsoft Store) build does not read registry configuration values and cannot be centrally managed.

    OpenMSG reads configuration from the Windows Registry. Values are read in priority order — higher entries override lower ones:

    1 — Group Policy (highest priority)

    HKEY_LOCAL_MACHINE\SOFTWARE\Policies\OpenMSG

    2 — Machine-wide defaults

    HKEY_LOCAL_MACHINE\SOFTWARE\OpenMSG
    There is no per-user registry tier — both configuration paths are machine-wide. Per-user preferences (theme choice, telemetry opt-out, EULA acceptance) are stored in the app's private LocalSettings store, not in the registry.
    All values are REG_DWORD for booleans and integers, and REG_SZ for strings. Boolean values use 1 (true) or 0 (false). Integer values are clamped to documented ranges.

    Configuration Reference

    The following configuration values are read only by the Enterprise build and have no effect on the consumer Microsoft Store build. All values require a valid commercial licence.

    Attachments & File Limits

    Value NameTypeDefaultDescription
    SafeAttachmentsREG_SZ.pdf,.docx,.xlsx,.pptx,.png,.jpg,.jpeg,.gif,.txt,.csv,.rtf,.msgComma-separated list of allowed attachment extensions. Attachments with other extensions trigger a warning (or are blocked if BlockUnsafeAttachments is set).
    BlockUnsafeAttachmentsDWORD0 (false)When enabled, attachments whose extension is not in SafeAttachments are silently blocked. Users cannot override this.
    ShowAttachmentPopupsDWORD1 (true)When enabled, a confirmation dialog is shown before opening an attachment that is not in the safe extension list. When disabled, the attachment opens without prompting.
    DisableSpoofedAttachmentCheckDWORD0 (false)Skips the magic-bytes verification that blocks attachments whose contents do not match their claimed extension.
    DisableExecutableAttachmentCheckDWORD0 (false)Skips the check that blocks attachments carrying executable signatures (PE, ELF, Mach-O).
    MaxFileSizeMbDWORD3000Maximum .msg file size in MB. Clamped between 0 and 1,000,000.
    MaxAttachmentSizeMbDWORD1000Maximum attachment size in MB. Clamped between 0 and 1,000,000.
    MaxAttachmentCountDWORD100Maximum number of attachments extracted from one file. Clamped between 0 and 1000; 0 blocks all attachments.
    DisableAttachmentSaveDWORD0 (false)Removes the Save option from the attachment context menu. Users can still open attachments in their default app.

    Email Rendering & Security

    Value NameTypeDefaultDescription
    BlockThirdPartyAssetsDWORD1 (true)Injects a strict Content Security Policy into the rendered email, preventing images and other resources from loading from external servers. Enabled by default. Users can still reveal external content for a single message when AllowExternalContentOverride is enabled.
    AllowExternalContentOverrideDWORD1 (true)Allows users to reveal external content for an individual message via the Show content button when BlockThirdPartyAssets is active. When disabled, external resources can never be loaded.
    AllowJavaScriptInEmailsDWORD0 (false)By default, JavaScript event handlers (onclick, onerror, etc.) and javascript: links are stripped from email HTML before rendering. Set to 1 only if your organisation requires JavaScript in emails.
    BlockMailtoLinksDWORD0 (false)Prevents mailto: links in emails from opening the default mail client.
    DisableExternalLinksDWORD0 (false)Prevents http(s) links in emails from opening in the default browser.
    HideLargeEmailWarningDWORD0 (false)Suppresses the warning (and the Open in Browser option) shown when an email body exceeds WebView2's rendering height limit.
    AllowSandboxEscapeDWORD0 (false)Allows the parsing process to run outside its AppContainer sandbox. Not recommended.

    Appearance & Window

    Value NameTypeDefaultDescription
    ForceThemeDWORD0Locks the UI to a specific theme at launch. 0 = follow user/system preference, 1 = always Light, 2 = always Dark. The in-app theme toggle remains available unless HideThemeToggle is also set.
    DefaultThemeDWORD1Sets the initial theme on first launch. 0 = follow system, 1 = Light, 2 = Dark. Users can still toggle unless HideThemeToggle is set.
    HideThemeToggleDWORD0 (false)Removes the light/dark theme toggle button from the toolbar.
    DefaultWindowWidthDWORD1200Initial window width in logical pixels. Clamped between 400 and 4000. DPI scaling is applied automatically.
    DefaultWindowHeightDWORD770Initial window height in logical pixels. Clamped between 300 and 3000. DPI scaling is applied automatically.
    AppTitleOverlayREG_SZ""Replaces the window title bar text. Useful for white-label or rebranded enterprise deployments.
    HideAboutMenuDWORD0 (false)Removes the About menu from the app.
    HideThirdPartyCreditsDWORD0 (false)Removes the third-party open-source credits entry from the About menu.
    DisableDragAndDropDWORD0 (false)Disables opening files by dragging and dropping them onto the window.

    Printing

    Value NameTypeDefaultDescription
    DisableEmailPrintDWORD0 (false)Disables the email-to-PDF print function.
    DisableAttachmentPrintDWORD0 (false)Removes the Print option from the attachment context menu.
    HidePrintBrandingDWORD0 (false)Removes the OpenMSG branding from printed output.

    Support, Compliance & Auditing

    Value NameTypeDefaultDescription
    DisableEventLogDWORD0 (false)Stops writing the OpenMSG audit trail to the Windows Event Log.
    HideLicensingPromptDWORD1 (true)Hides the commercial-use licensing banner. Defaults to true in current builds.
    DisableRatingPromptDWORD0 (false)Suppresses the periodic prompt asking users to rate the app in the Microsoft Store.
    SupportEmailREG_SZ[email protected]Email address shown in error dialogs and the support banner. Override to route support requests to your own IT helpdesk.
    HideSupportMessageDWORD0 (false)Hides the support contact message shown in the toolbar and in some error dialogs.
    AcceptEulaDWORD0 (false)Pre-accepts the End User Licence Agreement, suppressing the first-launch EULA prompt in managed deployments.
    AcceptPrivacyPolicyDWORD0 (false)Pre-accepts the Privacy Policy, suppressing the first-launch acceptance prompt in managed deployments.

    Group Policy Deployment

    Enterprise build only. Group Policy configuration requires deploying the Enterprise MSIX build. The consumer build from the Microsoft Store does not support Group Policy management.

    Values written to HKEY_LOCAL_MACHINE\SOFTWARE\Policies\OpenMSG take precedence over all others and cannot be overridden by the user. Use this path for enforced IT policy. Example PowerShell to lock the theme to Dark and route support requests to your helpdesk across all users:

    # Run as Administrator

    $path = "HKLM:\SOFTWARE\Policies\OpenMSG"

    New-Item -Path $path -Force | Out-Null

    Set-ItemProperty -Path $path -Name "ForceTheme" -Value 2 -Type DWord

    Set-ItemProperty -Path $path -Name "HideThemeToggle" -Value 1 -Type DWord

    Set-ItemProperty -Path $path -Name "SupportEmail" -Value "[email protected]" -Type String

    Privacy & Telemetry

    Usage Analytics (PostHog)

    OpenMSG sends anonymous usage events to PostHog to help prioritise development. Events include actions such as app launched, msg file opened, attachment opened, and theme toggled.

    Each event includes:

    • An anonymous device identifier — a random GUID generated per installation and reset on reinstall
    • App version and OS version
    • Corporate domain (UPN domain suffix only, not usernames or full addresses)
    • Network IP addresses are discarded before ingestion
    Email content, attachment content, filenames, sender details, and recipient addresses are never included in any telemetry event.

    Telemetry can be disabled by users from within the app — the About menu (ⓘ) contains a Share anonymous usage data toggle, which applies after the app restarts. Telemetry and crash reporting are permanently disabled in the Enterprise and Evaluation builds.

    Crash Reporting (BugSplat)

    If the application crashes, a report containing the stack trace, OS version, and app version is sent to BugSplat. Crash reports do not contain email content or attachments.

    Crash reporting is disabled via the same in-app Share anonymous usage data toggle. See BugSplat's privacy policy at bugsplat.com/privacy.

    Troubleshooting

    File Is Empty or Truncated

    Cause

    The .msg file is less than 512 bytes, was not fully downloaded, or was interrupted during a copy operation.

    Fix

    Re-download or re-save the file. If the file is on a network share, verify the copy completed successfully.

    Cloud File Access Error

    Cause

    The file is an OneDrive or SharePoint Files On-Demand placeholder that has not been downloaded to disk yet.

    Fix

    Right-click the file in Explorer and choose "Always keep on this device", then try opening it again. Make sure OneDrive is signed in and running.

    Unrecognised File Format

    Cause

    The file does not contain a valid Compound File Binary (.msg) structure. It may be an EML, RTF, or other format saved with a .msg extension, or the file may be corrupt.

    Fix

    Ask the sender to re-export the email directly from Outlook as a .msg file. Forwarding as an attachment also works.

    Access Denied

    Cause

    The operating system denied read access to the file. This can happen if the file is locked by Outlook, stored in a restricted folder, or has restrictive NTFS permissions.

    Fix

    Close Outlook if it is open. Move the file to a location you own (e.g. Downloads) and try again.

    File Picker Unavailable

    Cause

    OpenMSG is running with elevated (Administrator) privileges. The Windows file open picker is blocked for elevated processes.

    Fix

    Close OpenMSG and relaunch it without right-clicking "Run as administrator". Normal user privileges are all that is required.

    Invalid Encrypted or Signed Email

    Cause

    The email was digitally signed or encrypted (S/MIME) but the cryptographic signature is malformed or uses an algorithm OpenMSG does not support.

    Fix

    Ask the sender to forward the message as a plain email without encryption, or to re-send without a digital signature.

    Spoofed Attachment Blocked

    Cause

    The attachment's file contents do not match what its extension claims (magic bytes mismatch). This is a security protection against disguised executables.

    Fix

    Contact the sender to verify the file is legitimate and ask them to re-send it.

    Still stuck? Email [email protected] — include your Windows version, app version (visible in the window title bar), and a description of the issue.