Как я могу вернуть основной адрес электронной почты, связанный с текущим профилем Outlook вошедшего пользователя? - PullRequest
2 голосов
/ 06 декабря 2009

Я знаю, это немного странно просить запрос, чтобы сказать мне мой собственный адрес электронной почты правильно, я объясню дальше ...

Я пишу надстройку COM для Outlook 2007. Одна из подпрограмм генерирует и отправляет электронную почту на определенный адрес, и все это прекрасно работает. Однако мне нужно, чтобы отправитель мог включить себя в список получателей. Поскольку это будет выполняться более чем одним человеком, я не могу просто установить адрес электронной почты отправителя вручную и предпочел бы просто добавить флажок в форму, чтобы включить эту функцию.

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

Проще говоря: Используя VB, как я могу вернуть основной адрес электронной почты, связанный с текущим профилем Outlook вошедшего в систему пользователя?

Ответы [ 3 ]

5 голосов
/ 15 декабря 2009

Application.Session.CurrentUser.AddressEntry.GetExchangeUser.PrimarySmtpAddress
или
RDOSession.CurrentUser.SmtpAddress

0 голосов
/ 15 августа 2011

Если вы используете Outlook Redemption, тогда решение @ bugtussle работает, но сначала вы должны войти в систему через Redemption. Так как документация об Искуплении ужасна, вот полный код, который работал для меня:

RDOSession session = new RDOSession();
session.Logon(null, null, null, true, null, null);
string emailAddress = session.CurrentUser.SMTPAddress;
session.Logoff();
return emailAddress;
0 голосов
/ 07 декабря 2009

Посмотрите, используя свойство accessor, чтобы получить свойство mapi

Если тип учетной записи EX, PR_SMTP_ADDRESS или DASL "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"

Несмотря на то, что вы снова читаете ваш вопрос, некоторые аккаунты не Exchange?

Марк

...