I have tried finding an answer to this question practically everywhere I could imagine, including here on StackOverflow. Unfortunately to no avail. So here it is.

I'm working on an Outlook Add-in (with Outlook 2021), and have developed some code that creates some ItemProperties specifically for use with that add-in. Now, when those properties are created, I can see them when I go to View->Settings->Advanced View Settings->Columns, as illustrated in the screenshot.

[Screenshot of User-defined fields in Outlook](https://i.stack.imgur.com/aOv9Z.png)

In some cases, though, I want to completely delete the properties. And as I know how to do that manually, as pointed out in the figure, I can't find out how to do that programmatically via C#. I have gone that far as to remove the properties from each mail containing that kind of property, like this:

```
IEnumerable<MailItem> listOfAssignedEmails = itemsToProcess.Where(
    t => t.ItemProperties[MailExpiration.ExpirationDatePropertyName] != null);
foreach (MailItem email in listOfAssignedEmails)
{
    // Note: The Delete() operation is deprecated. A more up-to-date method must be found.
    email.ItemProperties[MailExpiration.ExpirationDatePropertyName].Delete();
    email.Save();
}

```

... and yes, I know that the Delete() operation is deprecated; however, I couldn't find another method for removing the ItemProperty from the email (any suggestions are welcome).

Basically, the deletion of this Property is only going to be done very rarely (t. ex. if the user chooses to uninstall the Add-in. However, if there's any way to remove that property automatically, I would be happy to know.

Any suggestions will be greatly appreciated.