C#, Как получить отправление адреса электронной почты имени в дополнении перспективы

Я пытаюсь получить адрес электронной почты отправителя из электронной почты, которая является, отправляют использование другого адреса электронной почты. Отправителем как шоу в перспективе является ditribution-lists@domain.com от имени Имени пользователя [user.name@domain.com]. MAPI объект имеет метод SentOnBehalfOfName это возвращает "Имя пользователя", но не адрес электронной почты. Кто-либо знает, как получить поле user.name@domain.com?

6
задан Alin 11 February 2010 в 11:36
поделиться

3 ответа

using System;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Reflection;

namespace Helpers
{
    internal class EmailHelper
    {
        public static string GetSenderEmailAddress(Microsoft.Office.Interop.Outlook.MailItem mapiObject)
        {
            Microsoft.Office.Interop.Outlook.PropertyAccessor oPA;
            string propName = "http://schemas.microsoft.com/mapi/proptag/0x0065001F";
            oPA = mapiObject.PropertyAccessor;
            string email = oPA.GetProperty(propName).ToString();
            return email;
        }
    }
}
6
ответ дан 16 December 2019 в 21:39
поделиться

Обратные ссылки являются одноосновными, например , \1 или $1 - первое вложенное выражение в скобках и т. д. Как изложено, один картует другому без всяких раздумий.

Также следует отметить, что m.Groups [«0»] предоставляет всю соответствующую подстроку, поэтому не забудьте пропустить «0» , если выполняется итерация над regex.GetGroupNames () .

-121--2720142-

Я использую метод .get () - это предпочтительный метод.

Python 2.5.2 (r252:60911, Jul 22 2009, 15:33:10)
[GCC 4.2.4 (Ubuntu 4.2.4-1ubuntu3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import dis
>>> def f1(key, d):
...   if key in d:
...     return d[key]
...   else:
...     return "default"
...
>>> dis.dis(f1)
  2           0 LOAD_FAST                0 (key)
              3 LOAD_FAST                1 (d)
              6 COMPARE_OP               6 (in)
              9 JUMP_IF_FALSE           12 (to 24)
             12 POP_TOP

  3          13 LOAD_FAST                1 (d)
             16 LOAD_FAST                0 (key)
             19 BINARY_SUBSCR
             20 RETURN_VALUE
             21 JUMP_FORWARD             5 (to 29)
        >>   24 POP_TOP

  5          25 LOAD_CONST               1 ('default')
             28 RETURN_VALUE
        >>   29 LOAD_CONST               0 (None)
             32 RETURN_VALUE
>>> def f2(key, d):
...   return d.get(key, "default")
...
>>> dis.dis(f2)
  2           0 LOAD_FAST                1 (d)
              3 LOAD_ATTR                0 (get)
              6 LOAD_FAST                0 (key)
              9 LOAD_CONST               1 ('default')
             12 CALL_FUNCTION            2
             15 RETURN_VALUE
>>> def f3(key, d):
...   try:
...     return d[key]
...   except KeyError:
...     return "default"
...
>>> dis.dis(f3)
  2           0 SETUP_EXCEPT            12 (to 15)

  3           3 LOAD_FAST                1 (d)
              6 LOAD_FAST                0 (key)
              9 BINARY_SUBSCR
             10 RETURN_VALUE
             11 POP_BLOCK
             12 JUMP_FORWARD            23 (to 38)

  4     >>   15 DUP_TOP
             16 LOAD_GLOBAL              0 (KeyError)
             19 COMPARE_OP              10 (exception match)
             22 JUMP_IF_FALSE           11 (to 36)
             25 POP_TOP
             26 POP_TOP
             27 POP_TOP
             28 POP_TOP

  5          29 LOAD_CONST               1 ('default')
             32 RETURN_VALUE
             33 JUMP_FORWARD             2 (to 38)
        >>   36 POP_TOP
             37 END_FINALLY
        >>   38 LOAD_CONST               0 (None)
             41 RETURN_VALUE
-121--2246943-

Если вы используете outlook 2007 у вас есть SunItem.PropertyAccessor и вы можете получить свойство PR_SENDER_EMAIL_ADDRESS mapi.

Маркус

1
ответ дан 16 December 2019 в 21:39
поделиться

Вы также можете посмотреть на Adobe BrowserLab:

http://browserlab.adobe.com

-121--2449711-

Создатель C++ говорит, что не нарушает принцип инкапсуляции, и я процитирую его:

Нарушает ли «друг» инкапсуляцию? Нет. «Друг» - это явный механизм предоставления доступа, как и членство. Вы не можете (в стандартной соответствующей программе) предоставить себе доступ к классу без изменения его источника.

Более чем ясно...

-121--530311-

Есть ли у вас http://www.dimastr.com/outspy/ ? Это полезный инструмент для развертки объектов MAPI в Outlook.

Кроме того, при использовании http://www.dimastr.com/redemption/ можно получить свойство SentOnBealhOfEmailAddress объекта IRDOMail.

1
ответ дан 16 December 2019 в 21:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: