Outlook add-in creating spurious folders in new PSTs - outlook

I'm maintaining an Outlook 2010 addin produced by my company. Some of our clients have reported that spurious folders named &Dont prompt me about this again., &Dont prompt me about this again.1, &Dont prompt me about this again.2, etc. are appearing. I was able to duplicate this issue by creating a new PST file; each time I re-open Outlook, a new folder is created.
Some research indicates that people have reported similar issues with Outlook Social Connector and the Norton Antispam Outlook Addin. I verified that neither of the above is causing our issue. It seems to me that this is an issue among Outlook add-ins. Is there something we can do to fix it in our Outlook add-in?

When you execute the method 'GetDefaultFolder' with any value, if the folder doesn't exist in the new .pst file, the Outlook create it:
Outlook.NameSpace ns = OutlookApp.Session;
Outlook.Store store = ns.Stores[1];
store.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderDrafts);
Sometimes, for no reason, the Outlook creates strange folders, like in my question:
Outlook.Store.GetDefaultFolder creates a stranger folder
I'm still dont understand why...

Related

Uninstall VSTO Outlook Add-In while Outlook remains open

I have created my VSTO Add-In installer using "ClickOnce". I am using "VSTOInstaller.exe" to install and uninstall using PowerShell script. The uninstallation works fine when the Outlook is not running. However, when it is running, even though uninstall does not show any error, it does not uninstall the add-in. None of the relevant registry entries are deleted. Is there any "force" option to uninstall it? How can it be done when Outlook is up and running?
I think forcefully closing outlook will not solve your problem as maybe user is working on some mails and if you close it forcefully user will loss unsaved mails.
However, if you still want to do it.
you can create a new form along with your project
and use this code
if (System.Diagnostics.Process.GetProcessesByName("OUTLOOK").Length > 0)
{
System.Diagnostics.Process proc = System.Diagnostics.Process.GetProcessesByName("OUTLOOK")[0];
proc.Kill();
}
Otherwise you can put a popup to tell user to close the outlook from its end so that user can save its already opened work before closing outlook.

Custom properties are not being saved immediately to Exchange Server in Outlook desktop 2016

My Outlook web add-in saves emails to an external application.Upon save, it will also write some custom information to exchange server using Office.js's customProps.saveAsync();. So next time the user open the same email, the add-in will look up the properties and if it is not null will remind the user the email has been saved.
Work like a charm in web browser(Office 365).
However in Windows Outlook desktop, the function performs strangely. If I save the email and then immediately move the email to another folder. The customProps.saveAsync(); will fail(nothing saved to exchange server). However, if I re-launch the add-in on the email before moving out to another folder, the custom info will be saved successfully.
Seems to me on Outlook desktop the custom properties will not be written to the exchange server immediately, instead, it will wait until it is being triggered(re-launch add-in etc I do not know the exact mechanism). However, if the email being moved to another folder right after being saved in an add-in, the pending function will be lost.
I found this describing seemingly similar behavior. So I then turned off the "cache" mode in outlook but the problem persisted.
I also tried using EWS's API to perform the "save custom properties", but the problem still persisted.
Am I missing somethinghere or it is Outlook desktop's bug?
You are not missing something - this is definitely a bug in Outlook Desktop. Thank you for reporting the issue. We are investigating and will work on a fix as quickly as we can.
As a workaround in the interim, you can switch messages within the same folder in order to trigger a save. The workaround you found of re-opening an Add-in may also work.

How to Detect if Office 365 web addin is installed or not?

We have a desktop app with which we want to integrate Office 365 calendar. We will have our users provide their consent by authorising the app in office 365. I wonder if I can use any specific permission and/or api that would help us know if our office 365 office.js addin is installed by that user. This works great with VSTO addin as we can get the info from system registry, however, as Office 365 addin is installed on cloud no such registry can be found and we won’t be able to know.
Exchange will create a subfolder for each installed web addin in a special folder named WebExtAddins. The folder is on the same level as the other special folders (e.g. the Inbox), but is hidden. You can see that folder (and its subfolders) in OutlookSpy (I am its author) - click IMsgStore button on the OutlookSpy ribbon, click "Open Folder", double click on the folder named WebExtAddins.
UPDATE April 2022 - it looks like Outlook no longer uses the WebExtAddins folder. Instead, the list of web addins is stored in a hidden (associated) message with the message class of "IPM.Configuration.ExtensionMasterTable" in the Inbox folder. The list is stored in the PR_ROAMING_XMLSTREAM binary property. The format of the property is not documented.
In EWS, the list of installed addins can be retrieved using the GetAppManifests operation. If you are using Outlook Object Model or Extended MAPI, your only option is parsing that blob.
For this particular case (figure out if a web addin is installed), the addin custom storage will be in a hidden (associated) message in Inbox folder with the message class of "IPM.Configuration.ClientExtension.<guid>", where <guid> is your addin's GUID. You should be able to asccess that hidden message using MAPIFolder.GetStorage("IPM.Configuration.ClientExtension.<guid>", olIdentifyByMessageClass) (where MAPIFolder is retrieved from Namespace.GetDefaultFolder(olFolderInbox))
It seems that there is no good way to check directly now. Just like you said,Office 365 add-in is installed on Cloud. Since it runs through a separate browser process (Like IE). After plug-ins are loaded, we typically see two IE processes in the process manager. Here's a detail. If your Office is 32-bit, then its core process will be a 32-bit one. You can see that if you load multiple plug-ins, the memory it uses will gradually increase. However, it is still a process.
Screenshot:
Also, if your Windows is 64-bit, it will create another 64-bit IE process which is actually a call relationship. As you can see from the diagram below, the 32-bit process is actually calling the 64-bit process.

"Outlook blocked access to the following potentially unsafe attachments"

Recently, we have some users which suddenly got this massege:
"Outlook blocked access to the following potentially unsafe attachments"
(outlook 2010 plus)
I had tried all of this: https://support.microsoft.com/en-us/help/829982/outlook-blocked-access-to-the-following-potentially-unsafe-attachment
but nothing had changed...
I was able to permanently unblock files with specific extensions by applying the following procedure, that I found at sitepoint.com :
Close Outlook
Run your Registry Editor (regedit.exe)
Go to HKEY_CURRENT_USER/SOFTWARE/Microsoft/Office/XX/Outlook/Security, where XX corresponds with your version of Office
Create a new key of the type String Value, named Level1Remove
Add the extensions you want to unblock, separated by ; characters
(for example : .js;.vbs;.exe)
Restart Outlook
If that doesn't work, the issue is probably caused by one of Microsoft's June 2017 security patches. Instead of removing the security patch responsible, you might want to consider one of the fixes or workarounds mentioned here.
The update blocks access to attachments with long filenames and/or file names with consecutive periods
Remove this update to fix :-
(might want to decline these updates in WSUS to prevent re-installation)
Outlook 2007: KB3191898
Outlook 2010: KB3203467
Outlook 2013: KB3191938
Outlook 2016: KB3191932
Replaced with :-
Outlook 2010 KB4011042
Outlook 2013 KB3191849
Outlook 2016 Fixed in build 1706 - run Office update (note not fixed in Deferred channel)
No fix for Outlook 2007
We recently had the same issue, when I removed KB3203467 (Security Update for Microsoft Outlook 2010) - this resolved the issue immediately.
if this message comes "Outlook blocked access to the following potentially unsafe attachments" message in Outlook"
Outlook goto Junk option , Never block Option
click it
then file will accessible.
We have Outlook 1808 (Office 365 up-to-date as of March 2019) and we were still receiving this message with a pdf.
We just added the sender to the Safe Senders list and restarted Outlook:
Home -> Junk -> Junk E-mail Options -> Safe Senders -> Add the email address (this really should be a button)
Tick the 'Automatically add people I email to the Safe Senders List'

Not Showing Outlook Addin

I have created outlook addin for Outlook 2013 64 bit.
In that Addin, i have created Form region with custom controls.
Then with the reference of http://blogs.msdn.com/b/emeamsgdev/archive/2013/11/21/outlook-deploying-an-outlook-2013-add-in-using-installshield-le.aspx i created setup file for Addin.
Now i installed it in my computer and everything works fine.
However when i try to install it on client computer, it doesn't show addin in outlook.
and i am not able to find any reason.?
I have also created registry for my addins
If it simply doesn't load, without errors, it only means one thing, outlook is unaware of your addin, cause even when addins are not working, outlook gives you an error or turns the LoadBehaviour regkey to '2'.
On your client, you should check that the registry values are set properly.
**HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\Addins\Outlook_PROJECT_ADDIN
If your addin doesn't work, check to see if those values exist, and if they do, what happens when outlook loads ? does LoadBehavior turns to '2' instead of 3 ?
If so, and it works perfectly on your pc, it probably means you have issues with the Manifest regkey, make sure the manifest points to a valid local location followed by a |vstolocal
so its syntax should be something like:
file:///C:/Outlook_Proj.vsto|vstolocal
Also make sure you have .Net Framework v4.0 installed on your target PC.
If you're trying to install it to a network drive, make sure you remove the '|vstolocal| thingy, and add the network drive to the trusted zone in Internet Explorer Settings.
Hope the following steps will help you solve this problem if you are still facing it.
Run the deployed setup with administration rights.
If it is not shown under Add-ins, open the setup folder and double click on the .vsto file then select install.
If you can see the addin among the others, and is not functioning it means it is disabled. To enable the add-in(since you are using outlook 2013), go to File -> Slow and Disabled Add-ins, and you shold see your add-in on the pop-upped window. Enable it.
Create the VSTO_SUPRESSDISPLAYALERTS = 0 enviorment variable to get any VSTO alerts. Take a look in the Windows event viewer and off course be sure of being installed the pre requisistes like Office Primary assembles and VSTO for office. Another think, check if your adding was not crashed once and move to inactive add-in list. Search registry for Resiliency key.

Resources