Microsoft 365
1587 TopicsMy first Add-In
Hello everyone, I’m working on developing my first Add-In for Outlook 365. In theory, it’s quite simple—it’s a drop-down menu with two options. Each option opens a new email and loads a different template, depending on the selection. So far, the menu is functioning smoothly. Selecting option A displays the corresponding template, and the same goes for option B. However, I’m facing a problem: I can’t get the user’s signature to load automatically as expected, even though the signature is properly configured and set as the default for new emails. I’ve attached part of mymanifest.xml and command.ts files for you to review. If you could provide some guidance on how to resolve this issue, I’d greatly appreciate it. Thank you so much for your support! manifest.xml <Requirements> <Sets> <Set Name="Mailbox" MinVersion="1.5"/> </Sets> </Requirements> <FormSettings> <Form xsi:type="ItemRead"> <DesktopSettings> <SourceLocation DefaultValue="https://localhost:3000/taskpane.html"/> <RequestedHeight>250</RequestedHeight> </DesktopSettings> </Form> </FormSettings> <Permissions>ReadWriteItem</Permissions> <Rule xsi:type="RuleCollection" Mode="Or"> <Rule xsi:type="ItemIs" ItemType="Message" FormType="Read"/> <Rule xsi:type="ItemIs" ItemType="Message" FormType="Edit"/> </Rule> <DisableEntityHighlighting>false</DisableEntityHighlighting> <VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0"> <Requirements> <bt:Sets DefaultMinVersion="1.5"> <bt:Set Name="Mailbox"/> </bt:Sets> </Requirements> <Hosts> <Host xsi:type="MailHost"> <DesktopFormFactor> <FunctionFile resid="Commands.Url"/> <ExtensionPoint xsi:type="MessageReadCommandSurface"> <OfficeTab id="TabDefault"> <Group id="msgReadGroup"> <Label resid="GroupLabel"/> <!-- Menú desplegable para las opciones --> <Control xsi:type="Menu" id="DropdownMenu"> <Label resid="DropdownMenu.Label"/> <Supertip> <Title resid="DropdownMenu.Label"/> <Description resid="DropdownMenu.Tooltip"/> </Supertip> <Icon> <bt:Image size="16" resid="MenuIcon.16x16"/> <bt:Image size="32" resid="MenuIcon.32x32"/> <bt:Image size="80" resid="MenuIcon.80x80"/> </Icon> <Items> <Item id="InternalAction"> <Label resid="InternalAction.Label"/> <Supertip> <Title resid="InternalAction.Label"/> <Description resid="InternalAction.Tooltip"/> </Supertip> <!-- Imagen para la opción Internal --> <Icon> <bt:Image size="16" resid="InternalIcon.16x16"/> <bt:Image size="32" resid="InternalIcon.32x32"/> <bt:Image size="80" resid="InternalIcon.80x80"/> </Icon> <Action xsi:type="ExecuteFunction"> <FunctionName>handleInternalAction</FunctionName> </Action> </Item> <Item id="ExternalAction"> <Label resid="ExternalAction.Label"/> <Supertip> <Title resid="ExternalAction.Label"/> <Description resid="ExternalAction.Tooltip"/> </Supertip> <!-- Imagen para la opción External --> <Icon> <bt:Image size="16" resid="ExternalIcon.16x16"/> <bt:Image size="32" resid="ExternalIcon.32x32"/> <bt:Image size="80" resid="ExternalIcon.80x80"/> </Icon> <Action xsi:type="ExecuteFunction"> <FunctionName>handleExternalAction</FunctionName> </Action> </Item> </Items> </Control> </Group> </OfficeTab> </ExtensionPoint> </DesktopFormFactor> </Host> </Hosts> <Resources> <bt:Images> <!-- Iconos del menú --> <bt:Image id="MenuIcon.16x16" DefaultValue="https://localhost:3000/assets/menu-icon-16.png"/> <bt:Image id="MenuIcon.32x32" DefaultValue="https://localhost:3000/assets/menu-icon-32.png"/> <bt:Image id="MenuIcon.80x80" DefaultValue="https://localhost:3000/assets/menu-icon-80.png"/> <!-- Iconos para la opción Internal --> <bt:Image id="InternalIcon.16x16" DefaultValue="https://localhost:3000/assets/int-16.png"/> <bt:Image id="InternalIcon.32x32" DefaultValue="https://localhost:3000/assets/int-32.png"/> <bt:Image id="InternalIcon.80x80" DefaultValue="https://localhost:3000/assets/int-80.png"/> <!-- Iconos para la opción External --> <bt:Image id="ExternalIcon.16x16" DefaultValue="https://localhost:3000/assets/ext-16.png"/> <bt:Image id="ExternalIcon.32x32" DefaultValue="https://localhost:3000/assets/ext-32.png"/> <bt:Image id="ExternalIcon.80x80" DefaultValue="https://localhost:3000/assets/ext-80.png"/> </bt:Images> <bt:Urls> <bt:Url id="Commands.Url" DefaultValue="https://localhost:3000/commands.html"/> <bt:Url id="Taskpane.Url" DefaultValue="https://localhost:3000/taskpane.html"/> <bt:Url id="CommandsJs.Url" DefaultValue="https://localhost:3000/commands/commands.js"/> </bt:Urls> <bt:ShortStrings> <!-- Nombre del grupo --> <bt:String id="GroupLabel" DefaultValue="New Client/Matter"/> <!-- Etiqueta para el menú desplegable --> <bt:String id="DropdownMenu.Label" DefaultValue="Choose Action"/> <!-- Etiqueta para la opción Internal --> <bt:String id="InternalAction.Label" DefaultValue="Internal"/> <!-- Etiqueta para la opción External --> <bt:String id="ExternalAction.Label" DefaultValue="External"/> </bt:ShortStrings> <bt:LongStrings> <!-- Tooltip para el menú --> <bt:String id="DropdownMenu.Tooltip" DefaultValue="Select an action to perform."/> <!-- Tooltip para la opción Internal --> <bt:String id="InternalAction.Tooltip" DefaultValue="Opens an internal email template."/> <!-- Tooltip para la opción External --> <bt:String id="ExternalAction.Tooltip" DefaultValue="Opens an external email template."/> </bt:LongStrings> </Resources> </VersionOverrides> </OfficeApp> command.ts /* global Office */ Office.onReady(function (info) { if (info.host === Office.HostType.Outlook) { Office.actions.associate("handleInternalAction", handleInternalAction); Office.actions.associate("handleExternalAction", handleExternalAction); } }); /** * Handles the "Internal" action. * param event The Office Add-in event. */ function handleInternalAction(event) { console.log("Handling internal action..."); openEmailTemplate("internal"); event.completed(); } /** * Handles the "External" action. * param event The Office Add-in event. */ function handleExternalAction(event) { console.log("Handling external action..."); openEmailTemplate("external"); event.completed(); } /** * Opens an email template with the user's signature. * param templateType The type of template ("internal" or "external"). */ function openEmailTemplate(templateType) { var templateBody = templateType === "internal" ? "This is the internal email template." : "This is the external email template."; var subject = templateType === "internal" ? "Internal Client/Matter" : "External Client/Matter"; console.log("Opening email template..."); // Open a new email draft Office.context.mailbox.displayNewMessageForm({ subject: subject, htmlBody: templateBody, }); // Insert the user's signature after the draft is created Office.context.mailbox.item.body.getAsync(Office.CoercionType.Html, function (result) { console.log("Attempting to get user's signature..."); if (result.status === Office.AsyncResultStatus.Succeeded) { var userSignature = result.value || ""; console.log("User's signature retrieved: ", userSignature); // Combine the template body with the user's signature var combinedBody = templateBody + "<br/><br/>" + userSignature; console.log("Updating email body with template and signature..."); // Update the email body with the template and the user's signature Office.context.mailbox.item.body.setAsync(combinedBody, { coercionType: Office.CoercionType.Html, asyncContext: { value: "setBody" }, // Optional: track async operation }); } else { console.error("Failed to get user's signature:", result.error); } }); } //# sourceMappingURL=commands.js.map18Views0likes0CommentsStop resource room/mailbox on deleting meeting invites and keep the auto-accept functionality
I tried different kinds of rules and the powershell command: Set-CalendarProcessing -Identity "RoomMailboxName" -DeleteNonCalendarItems $false But it doesn't change the behavior. Hope you guys can help29Views0likes1Commentexport email (sender/subject/date) in outlook 365 to excel
Hi! Whilst using the outlook thick client I could easily select emails and using the ctrl-c/crtl-v copy/paste into excel however I was unable to achieve it using the outlook 365 webclient. All searches refer me to the file/export option which is no longer available. Any tips please?3.1KViews0likes5CommentsMicrosoft 365 login
Hi folks, I can't login into my Microsoft Account from any Office 365 application on my Laptop. I can login to my my Account in any Webbrowser, on my Smartphone and so an. Unfortunatly there is no working Microsoft Support System for this problem. Instead there is an infinite support loop, which gets me in between a repair tool, that cant find any problems with my account and wants me to change my password. Anyone any idea how to fix this? thx66Views0likes0CommentsOffice 365 for IT Pros 2025 Edition is Now Available
Office 365 for IT Pros 2025 edition, the 11th edition of the most comprehensive and in-depth book covering the Microsoft 365 Office servers (Exchange Online, SharePoint Online, Teams, Entra, Planner. Stream, etc.), is now available. Office 365 for IT Pros subscriptions include a new 240-page book titled Automating Microsoft 365 with PowerShell covering PowerShell, Microsoft Graph APIs, and the Microsoft Graph PowerShell SDK. No Microsoft 365 tenant administrator should be without a copy of Office 365 for IT Pros! https://office365itpros.com/2024/07/01/office-365-for-it-pros-2025-edition/4.1KViews3likes7CommentsPublisher
I understand that Publisher will be removed from 365 in 2026 with the aim to incorporate it's features in Word. I love Publisher and before I had 365 I had a paid version. I use it for newsletters, crafts, knitting patterns, and photo albums. The things I most value are being able to crop and resize images, move text boxes around for best fit, adding effects like shading and wordart, and importing images. I'm not sure that these features could be available in Word so I'm looking for opinions on alternatives. My 365 version of Publisher has become very "buggy" recently with many "not responding" messages, and I don't want to try uninstalling if I can't get it back. It doesn't show as an option in the current list of apps included with 365. Can I buy a paid version of Publisher? Would this be supported going forward? Is there an alternative to Publisher that gives me the features I need and is compatible with my existing .pub documents? I'm not looking for a professional package, it's only for occasional home and hobby use, so a subscription model would be unaffordable and unnecessary. Alternatively, would Microsoft be able to assure me (and others like me) that they can incorporate Publisher features into Word or another app?13Views0likes0CommentsM365 Entra ID Guest cannot set up mfa
Hi there, for a week now, Entra ID guests from Our M365 tenant have not been able to set up the Microsoft Authenticator app. Error message: "Unfortunately, an error occurred" after the number was confirmed in the app. We are sure that the problem is not in our tenant settings - but also dont find informations about a microsoft issue. Microsoft ticket opened. But Microsoft has been silent for a few days. Any ideas?75Views0likes5CommentsMDE Platform stuck in Version 4.18.24080.9
We currently have Microsoft Defender for Endpoint for our Windows 11 Devices. Upon checking the devices in security portal most of them have "NOT UP TO DATE" PLATFORM. We tried the following to update the MDE on the clients: Get-WindowsUpdate -Install -KBArticleID KB4052623 -> Restart Update-MpSignature -> Restart Manual update by going to Virus & Threat Protection Settings -> Restart But we only see update on Security Intelligence.For MDE Platform it is stuck on Version 4.18.24080.9. What are we missing?24Views0likes0CommentsHow do I apply auto labelling policy based on a folder name in M365 Purview?
Condition --> When a folder name is "Finance", then auto apply the label "Indefinite" to the folder (and it's items inside it). So I Created a "auto apply label" and selected this retention label "indefinite" to it. I am having trouble writing the CONDITION which actually looks for folder named "Finance". Can you help me with that? I searched up various resources but can't find a single video or resource which explains how to write the above condition to apply a label when a folder name is matching a name mentiond in a query. Here is the auto label policy I am trying out This is what some of the resources in web suggested, but It doesn't work The above policy si active, but I can't see the auto label applied to the folder, or any document inside the Finance folder (See below). Is there a issue with the syntax?23Views0likes0CommentsHow do I ensure a document/folder is not automatically deleted after retention label period lapses?
Hello All, I have retention label created in M365 compliance centre, which appears as document metadata (As expected) in the document library as shown below One of the objectives is that the below retention label needs to appear at a folder level (one level up), rather than at document level. The desired outcome is that once this 3 years has lapsed, the folder should NOT be automatically deleted. It should be manually actioned by user (and the documents underneath the folder) When I created this retention label, here are the sequence of screens I went through ( I did not see the option that says "do nothing") when retention period lapses here is the retention period setting screen Here is the screenshot below that I have question about. Where is the option that says "dont do anything" after retention period lapses? It seems like I dont have that option here (Is it a setting that I need to enable somewhere?) . My goal is to have control over manually deleting documents (while respecting retention policies) without automatic deletion occuring. So my 2 questions here in this post are : 1) How do I apply this retention label to a folder (instead of individual document level)? 2) In the last screenshot above, how do I enable the option to "not do anything" (After retention period lapses)?36Views0likes3Comments