Informational Text to Encourage Good Message Habits
First introduced in Exchange 2010, a MailTip is informational text displayed when a recipient is added to a message in Outlook desktop and OWA. Some MailTips are system-generated and you can’t affect the text they display, such as those generated when messages are addressed to moderated recipients or when a recipient’s mailbox is full (a situation more unusual in the cloud than on-premises given the size of Exchange Online mailboxes). Others are controlled through the organization configuration.
Office 365 tenants should consider how to best use MailTips to help guide end users and make sure that they don’t do something like create the basis of a reply-all email storm by inadvertently sending a message to a large distribution list (the reply-all protection in Exchange Online is really only good for tenants with more than 5,000 mailboxes).
How Outlook Desktop and OWA Use MailTips
Last year, I commented about some problems in how clients displayed MailTips. Things have settled down since and despite obvious differences between Outlook and OWA, the two implementations reflect the style of each client. Figure 1 shows MailTips in Outlook while Figure 2 shows the MailTips generated for the same set of recipients (a mixture of internal and external addresses) in OWA.
Figure 1: MailTips displayed by Outlook for Windows
It’s obviously easy to display a single MailTip. As these screens show, the challenge is how to communicate as much information to users without overloading the interface.
Outlook displays a list of external recipients, which means that unwanted recipients can be removed with a single click. After more than one external recipient is added to a message, OWA hides the list and the user must use Show details to see and remove individual recipients. Displaying a MailTip to highlight external recipients is governed by the MailTipsExternalRecipientsTipsEnabled setting in the Exchange Online organization configuration.
The same approach is used to list internal recipients who have automatic replies set. Outlook lists the recipients; OWA forces the user to use Show details to reveal the information.
Outlook uses different colors for internal and external recipients.
Outlook tells the user if the message is going to more recipients than the threshold set in MailTipsLargeAudienceThreshold in the Exchange Online organization configuration (normally 25). OWA doesn’t show this information.
OWA does a better job of showing custom MailTips set for internal recipients. In Figure 1, we see Outlook displaying only one custom MailTip; in Figure 2, OWA reveals that four recipients have custom MailTips.
Figure 2: OWA displays MailTips
You can argue about which approach is better. The important thing is that both clients display MailTips to surface a lot of information about recipients to allow the sender to decide if they need to adjust the recipient list. They might realize that the information in the message shouldn’t go to external recipients, or that the distribution is too wide, or that some people won’t see time-critical information because they are on vacation.
These are all good reasons to use MailTips, even if new mechanisms are available in Office 365 to restrict access to sensitive information that weren’t as easy (or didn’t exist) in on-premises Exchange. For instance, any confidential message should be protected with a sensitivity label to encrypt the content and restrict access to people who have the right to view the material.
MailTipsAllTipsEnabled: Set to True to use MailTips.
MailTipsExternalRecipientsTipsEnabled: Set to True to have clients highlight messages addressed to external recipients.
MailTipsGroupMetricsEnabled: Set to True to have Exchange Online calculate the number of members in distribution lists. This data is used to establish if the large audience threshold is exceeded in messages. A background process checks distribution lists periodically, so don’t expect the numbers used to be 100% accurate.
MailTipsLargeAudienceThreshold: The default is 25. It’s lower here as a reminder that there might be a better way to share information with large audiences, such as a post in a Teams channel. Of course, if you don’t use Teams, you could increase the threshold right up to the maximum number of recipients an Exchange Online user can address in a message (1,000).
MailTipsMailboxSourcedTipsEnabled: Set to True to have Exchange Online look at mailbox data such as auto-reply messages to generate MailTips.
Custom MailTips
Custom MailTips are text of up to 175 characters assigned to any valid mail-enabled recipient type including mailboxes, shared mailboxes, group mailboxes, mail contacts, distribution lists, and dynamic distribution lists.
For example, these commands set custom MailTips for a mailbox, a Microsoft 365 group, and the mail user object created for a guest account:
Set-Mailbox -Identity Oisin.Johnston -MailTip “At the internal Sales Event. Will process email every evening”
Set-UnifiedGroup -Identity BankingTeam -MailTip "Messages to this Group are delivered to external guest members"
Set-MailUser vasil_michev.org#EXT# -MailTip "Be Careful with Vasil"
You can also look for objects with custom MailTips. For instance, here’s how to do it for mailboxes:
Get-ExoMailbox -ResultSize Unlimited -Properties MailTip | ? {$_.MailTip -ne $Null}| Format-List DisplayName, MailTip
DisplayName : Customer Services
MailTip : <html>
<body>
Mailbox Not in Active Use
</body>
</html>
DisplayName : Deirdre Redmond
MailTip : <html>
<body>
Away until July 20
</body>
</html>
As you can see, MailTips are stored in HTML format.
Users or the owners of distribution lists or groups cannot set MailTips unless they are an Exchange Online administrator and can update recipients with PowerShell. Like many mailbox settings, it takes a few hours before clients pick up MailTip changes.
Translated MailTips
Exchange Online operates in a multinational, multilingual environment. When you create a custom MailTip, it becomes the default for all languages. To create language-specific translations for a MailTip, you update the multi-valued MailTipTranslations property for an object. For example, this command sets up Spanish, French, and German translations for a mailbox. Clients configured in these languages display the language-specific value. If no value exists for the client language, the default MailTip is used.
Set-Mailbox -MailTipTranslations @{Add="ES: Buzón no en uso activo", “FR: Boîte aux lettres non utilisée”, “DE: Mailbox nicht aktiv genutzt“} -Identity CServices
To validate the translations, run a command like this:
Get-ExoMailbox -Identity CServices -Properties MailTip, MailTipTranslations | Format-List DisplayName, MailTip, MailTipTranslations
DisplayName : Customer Services
MailTip : <html>
<body>
Mailbox Not in Active Use
</body>
</html>
MailTipTranslations : {ES:<html>
<body>
Buzón no en uso activo
</body>
</html>
, DE:<html>
<body>
Mailbox nicht aktiv genutzt
</body>
</html>
, FR:<html>
<body>
Boîte aux lettres non utilisée
</body>
</html>
, default:<html>
<body>
Mailbox Not in Active Use
</body>
</html>
}
The Office 365 for IT Pros eBook is full of interesting and useful information about Exchange Online. Make sure you subscribe to stay updated with changes in the Office 365 email system.
{"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}
2 Replies to “MailTips: Useful Guidance for Good User Email Habits”