And Microsoft Issues Block to Stop People Using Leaked Client
Update: Microsoft has now released a public preview of the Monarch client. You can download the preview if you are a member of the Office Insiders program. See this post for details.The preview version is not very different to the leaked software.
A leaked build of Microsoft’s “One Outlook” client emerged last week. It wasn’t very exciting because it’s what Microsoft described during sessions at the Ignite conference in September 2020. “Project Monarch” is making progress, but it’s not the kind of fundamental breakthrough redevelopment of Microsoft’s venerable email client that some anticipated.
What leaked is a version of the Outlook Web App (OWA) client currently available to Exchange Online users. The client is complete with links in the navigation bar to invoke Yammer and Bookings, and icons to start a Teams chat or fast access to To Do tasks (Figure 1).
Figure 1: The Project Monarch “One Outlook” client connected to my Exchange Online mailbox
Support for shared mailboxes, Microsoft 365 Groups, sensitivity labels, and calendar board views is included, as is full support for Microsoft Editor, tab completion of phrases (with some interesting hiccups), and so on. I was even able to open a public folder. One thing that’s missing is Loop components, which Microsoft plans (MC370366) for both OWA and Outlook for Windows this month.
The Project Monarch client is packaged as a Progressive Web App (PWA) with limited offline capabilities (some calendar and email information is available, but not item contents). You can sign into the client with an Azure AD account, but not a consumer Microsoft Services account.
Prettier OWA
In a nutshell, this Project Monarch build is a slightly prettier version of OWA. When it’s feature-complete, it’s easy to see how Microsoft will slip this client in to replace:
OWA in Exchange Online (Office 365).
OWA in Outlook.com.
The basic Mail app in Windows 11.
Of course, each version of the client will have different capabilities, but they’ll all use the same basic framework, and that’s the important point.
OPX – OWA Powered Experiences (Figure 2): a method to allow other clients to consume features developed for OWA. A good example is how Outlook for Windows uses the OWA Room Finder. OPX depends on the WebView2 component, developed by the Edge team. WebView2 is also key to the Teams 2.0 client architecture.
Microsoft Sync Technology: the synchronization protocol currently used by the Outlook mobile (iOS and Android) and the Outlook for Mac clients to interact with Exchange Online. The word is that Outlook for Windows will eventually move away from MAPI over HTTP to use this protocol.
Augmentation Loop: a way to coordinate the services and data consumed by Outlook clients. Instead of Outlook building separate interfaces to plug new services into clients, they plug into the augmentation loop.
Offline working is the big gap that Microsoft must plug before replacing the Outlook desktop client is possible. For the last twenty years, Outlook has been able to synchronize a user’s entire mailbox using network smarts like drizzle-mode synchronization and priority threads. A replacement for Outlook desktop must be capable of sophisticated offline working, meaning that the client needs to be able to do more than basic send and receive of email. There’s no evidence of progress toward this goal in the leaked PWA.
Blocking the Leak
In response to the leak, Microsoft released MC376710 late on May 6 to say that “some users can access an unsupported early test version of the new Outlook for Windows.” The announcement appealed for customers to wait until Microsoft releases an official beta, promising more news about the beta “in the coming weeks.”
Microsoft also gave instructions about how to block mailboxes from synchronizing with the new Outlook. To do this, connect to Exchange Online with PowerShell and run the Set-CasMailbox cmdlet to block access, just like you’d block a mailbox from accessing a protocol like IMAP4 or Exchange ActiveSync.
When the block is in place, the new client fails to connect to the user mailbox and issues the error shown in Figure 3.
Figure 3: The Project Monarch client is blocked from synchronizing with a mailbox
Microsoft suggests that organizations use the block to prevent people from using the new client until the official beta is ready. In other words, they’d like you to run some code like this:
After all the excitement dies down, we’re left with the conclusion that Project Monarch is moving ahead, albeit slowly. We see the tip of the iceberg in the leaked client. Underneath, I’m sure that Microsoft is working through a bunch of software engineering challenges to create the foundation for a single base that can support multiple variations of Outlook clients. We await the news of the official beta as promised by Microsoft.
So much change, all the time. It’s a challenge to stay abreast of all the updates Microsoft makes across Office 365. Subscribe to the Office 365 for IT Pros eBook to receive monthly insights into what happens, why it happens, and what new features and capabilities mean for your tenant.
{"id":null,"mode":"button","open_style":"in_modal","currency_code":"EUR","currency_symbol":"\u20ac","currency_type":"decimal","blank_flag_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":100,"top_media_type":"featured_image","featured_image_url":"https:\/\/office365itpros.com\/wp-content\/uploads\/2022\/11\/cover-141x200.jpg","featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":true,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Virtual Tip Jar","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"Office 365 for IT Pros","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"Office 365 for IT Pros","form_subtitle":null,"currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thank you for supporting the work of Office 365 for IT Pros!","payment_confirmation_title":"Office 365 for IT Pros","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much would you like to tip?","initial":{"instruction_type":"normal","instruction_message":"How much would you like to tip? Choose any currency."},"empty":{"instruction_type":"error","instruction_message":"How much would you like to tip? Choose any currency."},"invalid_curency":{"instruction_type":"error","instruction_message":"Please choose a valid currency."}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"How often would you like to give this?"},"success":{"instruction_type":"success","instruction_message":"How often would you like to give this?"},"empty":{"instruction_type":"error","instruction_message":"How often would you like to give this?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}