Outlook Redemption — как изменить список автозаполнения в Outlook 2016 и более поздних версияхC#

Место общения программистов C#
Anonymous
Outlook Redemption — как изменить список автозаполнения в Outlook 2016 и более поздних версиях

Сообщение Anonymous »

Я работаю над проблемой, связанной с тем, что клиент меняет доменное имя для всех своих учетных записей электронной почты. Я хотел бы изменить все записи автозаполнения для всех учетных записей Outlook компаний с помощью консольного приложения, которое я могу запустить один раз для каждого пользователя.
Изображение

В настоящее время я работаю над подтверждением концепции Outlook 2016 и более поздних версий, используя Redemption для доступа к коллекции NickNames RDONickNames из объекта RDOSession. Когда я добавляю запись и сохраняю, она ничего не делает. Я также пробовал использовать RDOExchangeMailboxStore RDOExchangeMailBoxStore, но безуспешно. Похоже, что он обновляет файл .NK2, но не магазин. Насколько я понимаю, файл NK2 больше не используется Outlook 2016+. У меня такое ощущение, что я неправильно понимаю, как работает эта часть Outlook.
Мой вопрос: как я могу достичь цели - иметь возможность запускать консольное приложение, чтобы каждый пользователь мог изменять свои автоматически заполнять записи в Outlook?
Вот несколько примеров, которые я пробовал:
1.
using Outlook = Microsoft.Office.Interop.Outlook;
using System.Diagnostics;
using System.Security.Principal;
using Redemption;

var app = new Outlook.Application();
var nsp = app.GetNamespace("MAPI");
nsp.Logon();

RDOSession session = app.CreateObject("Redemption.RDOSession") as RDOSession;
session.MAPIOBJECT = nsp.MAPIOBJECT;
RDONicknames nicknames = session.GetNicknames();
nicknames.Add("The big Test ");

nicknames.Save();
using Outlook = Microsoft.Office.Interop.Outlook;
using System.Diagnostics;
using System.Security.Principal;
using Redemption;

var app = new Outlook.Application();
var nsp = app.GetNamespace("MAPI");
nsp.Logon();

RDOSession session = app.CreateObject("Redemption.RDOSession") as RDOSession;
session.MAPIOBJECT = nsp.MAPIOBJECT;
if(session.Stores.DefaultStore is RDOExchangeMailboxStore store)
{
var nns = store.GetNicknames();
nns.Add("The big Test ");
nns.Save();
}


Подробнее здесь: https://stackoverflow.com/questions/784 ... 016-and-up

Вернуться в «C#»