AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.06.2018, 14:34   #1  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
TVD, как прошедший мой путь, просьба прокомментировать.
Использую EWS. Немного доработал библиотеку MS в части тех вещей, которые не поддерживаются в DAX (вложенные классы, статические свойства readonly, определенные не через get/set, а присваиванием и т.п.).
Могу подключаться как хочу - к своему ящику, олицетворением, делегированием и т.п. От разных пользователей тоже все работает (задание пользователя/пароля, по доменной учетке). Могу подключиться к любому ящику, для которого есть доступ, получить все что там есть (вообще, мне нужно только письма, но пробовал подключаться и к календарям, задачам - все доступно).
Только вот проблема - мне нужно понимать адресата и адресанта письма. Пока письмо отправлено внутри экземпляра Excange, все хорошо. Но как только письмо получено от внешнего отправителя, то свойства From, ToRecipients и другие объекта EmailMessage пустые.
Сталкивались ли Вы с тем, что письма, циркулирующие внутри экземпляра Exchange и поступившие из вне имеют разные свойства? Если сталкивались, то как можно получить адреса в случае, если письмо получено из внешнего ящика?

Последний раз редактировалось Raven Melancholic; 23.06.2018 в 14:39.
Старый 23.06.2018, 18:10   #2  
TDV is offline
TDV
Участник
 
128 / 30 (2) +++
Регистрация: 04.11.2005
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
TVD, как прошедший мой путь, просьба .
Сталкивались ли Вы с тем, что письма, циркулирующие внутри экземпляра Exchange и поступившие из вне имеют разные свойства? Если сталкивались, то как можно получить адреса в случае, если письмо получено из внешнего ящика?
День добрый, подобной разницы не было. Одинаково определяются все реквизиты без проблем. Еще раз проверил, с mail.ru на корпоративную отправил письмо, все нормально определяется, почта отправителя, его имя, и почта получателя. В стороннем HD тоже всегда все ОК, Даже если отсылают на рассылку которая пересылает письмо внутри Exchange на почтовый адрес, то все определяется. На всякий случай ниже кусок кода где я это делал(продолжение того что в моем первом посте как пример приводил)
PHP код:
 if (direct == "")
                    {

                        
res[0] = emailMessage.From.Address;
                        
res[1] = emailMessage.From.Name;
                    }
                    else
                    {
                        
res[0] = emailMessage.ToRecipients.ToString();
                        
res[1] = emailMessage.DisplayTo;
                    }
                    
res[2] = message.Subject;
                    
res[3] = message.Body;
                    if (
direct == "")
                    {
                        
res[4] = Convert.ToString(message.DateTimeReceived);
                    }
                    else
                    {
                        
res[4] = Convert.ToString(message.DateTimeSent);
                    }

                    
                    
int co 1;
                    if (
direct != "")
                    {
                        
res[5] = message.Id.ToString();

                    }
                    


                    
int iIdx 0;
                    
                    for (
iIdx 0iIdx emailMessage.CcRecipients.CountiIdx++)
                    {
                        if(!
res[7].Contains(emailMessage.CcRecipients[iIdx].Address.ToString()+";"))
                        
res[7] += emailMessage.CcRecipients[iIdx].Address.ToString() + ';';
                    }
                    for ( 
iIdx 0iIdx emailMessage.ToRecipients.CountiIdx++)
                    {
                        if (!
res[7].Contains(emailMessage.ToRecipients[iIdx].Address.ToString() + ";"))
                        
res[7] += emailMessage.ToRecipients[iIdx].Address.ToString() + ';';
                    }
                    
iIdx 0;
                    
                    for (
iIdx 0iIdx emailMessage.BccRecipients.CountiIdx++)
                    {
                        if (!
res[7].Contains(emailMessage.BccRecipients[iIdx].Address.ToString() + ";"))
                        
res[7] += emailMessage.BccRecipients[iIdx].Address.ToString() + ';';
                    }
                    
                    if (
emailMessage.IsReadReceiptRequested == trueres[8] = "1"
За это сообщение автора поблагодарили: Raven Melancholic (5).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ролевой портал на разных серверах S.Scorpion DAX: Администрирование 0 18.01.2011 11:44
Вопросы по OLAP в DAX2009 oleg_e DAX: Функционал 9 10.12.2008 02:02
Размещение базы данных на разных физических SQL серверах Alexandr A. Osipkin_imported DAX: Администрирование 2 13.02.2007 10:41
Размещение БД на физически разных SQL серверах. Alexandr A. Osipkin DAX: Администрирование 10 07.02.2007 14:03

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:15.