ОБСУЖДЕНИЕ

Прочитать адрес адресата сообщения Оутлук

23 ответов 11,5 тыс.
Статус
Закрыто для дальнейших ответов.
Автор темы
Есть куча информация, про то как выдрать адресс отправителя из сообщения Оутлук, но не нашёл как выдрать адрес адрессата. Я не использую напрямую МайлАйтем, а делаю через ОлеВариант
Код:
outlook, NameSpace: OLEVariant;
MyFolder: OLEVariant;
MyItem: Variant;
outlook  := CreateOleObject('outlook.application');
NameSpace := outlook.GetNameSpace('MAPI');
MyItem := outlook.CreateItem(olMailItem);
MyFolder := Namespace.GetDefaultFolder(olFolderInbox);
for i := 1 to MyFolder.Items.Count do
 begin
MyItem := MyFolder.Items[i];
 objMes := objCDO.GetMessage(MyItem.EntryID,MyItem.Parent.StoreID);
 s:= objMes.Subject;
 s1:= objMes.SenderName;
 attCounter := objMes.Attachments.Count;
.......................................................

Ниже надо выдирать адресс адрессата, стандартное MyItem.To_ ругается что типа обьект не имеет метода To_
Помогите найти выход из данной ситуации.
Заранее благодарен.
 
Код:
outlook, NameSpace: OLEVariant;
 MyFolder: OLEVariant;
 MyItem: Variant;
outlook   := CreateOleObject('outlook.application');
NameSpace := outlook.GetNameSpace('MAPI');
 MyItem := outlook.CreateItem(olMailItem);
MyFolder := Namespace.GetDefaultFolder(olFolderInbox);
for i := 1 to MyFolder.Items.Count do
  begin
MyItem := MyFolder.Items[i];
  s:= MyItem.Subject;
 s1:= MyItem.SenderName;
 attCounter := MyItem.Attachments.Count;
.......................................................

Извените не тот код
 
А просто To не пробовали?
 
Вопрос встречный .. как прочитать почтовый адрес ОТ кого пришло письмо?
 
<!--QuoteBegin-Barmutik+8:08:2005, 17:30 -->
<span class="vbquote">(Barmutik @ 8:08:2005, 17:30 )</span><!--QuoteEBegin-->А просто To не пробовали?
[snapback]23148" rel="nofollow" target="_blank[/snapback]​
[/quote]
Просто .То_ не работает ругаясь что automation object doesn't support Method 'To_'.
На второй вопрос вот на что нарвался при поисках
Код:
var 
s: string; 
objCDO: OLEVariant; 
begin 
objCDO := CreateOLEObject('MAPI.Session'); 
objCDO.Logon('', '', False, False); 
objMsg := objCDO.GetMessage(itemOL.EntryID, itemOL.Parent.StoreID); 

s := objMsg.Sender.Address; 
ShowMessage(s); 
objMsg := Unassigned; 
objCDO := Unassigned; 
end

Где itemOL это MailItem.
 
Просмотрев библиотеку типов у Отулука я не смог найти свойство Sender
у интерфейса MailItem...
 
<!--QuoteBegin-Barmutik+9:08:2005, 09:08 -->
<span class="vbquote">(Barmutik @ 9:08:2005, 09:08 )</span><!--QuoteEBegin-->Просмотрев библиотеку типов у Отулука я не смог найти свойство Sender
у интерфейса MailItem...
[snapback]23175" rel="nofollow" target="_blank[/snapback]​
[/quote]
А я и не говорил что objMsg eto MailItem это OleVariant, код рабочий я его проверял, а что это за обьект хрен его знает
 
Интересно .. просто встал вопрос достать адресс отправителя через COM и как-то не могу его найти в письме ...
 
Ещё один вопрос есть ли у сообщения Оутлука какойнить уникаьный идентификатор, или чтонибудь уникальное которое неповторяется больше ни у одного письма. Очень хотелось бы чтобы такое было а то без него напряг.
 
Не стоит задавать одинаковые вопросы в разных топиках...
 
<!--QuoteBegin-Barmutik+9:08:2005, 14:17 -->
<span class="vbquote">(Barmutik @ 9:08:2005, 14:17 )</span><!--QuoteEBegin-->Не стоит задавать одинаковые вопросы в разных топиках...
[snapback]23201" rel="nofollow" target="_blank[/snapback]​
[/quote]
Общаемся тогда здесь. Нехочется тебя разочаровывать но у меня ЕнтриИД у всех писем одинаковый почему то, нужно чё нить другое
и кщё 1 вопрос как мне узнать стоит ли у письма пометка "важное2 или нет?
 
Хммм.. у меня 100% разные .. и в MSDN написано:

Returns a String representing the unique entry ID of the object.

Для узнавания важности есть свойство Importance
 
<!--QuoteBegin-Barmutik+9:08:2005, 15:51 -->
<span class="vbquote">(Barmutik @ 9:08:2005, 15:51 )</span><!--QuoteEBegin-->Хммм.. у меня 100% разные .. и в MSDN написано:
Для узнавания важности есть свойство Importance
[snapback]23206" rel="nofollow" target="_blank[/snapback]​
[/quote]
А чёрт его знает может ето из за того что здесь свой почтовый сервер, но у меня 100% одинаковые я проверял
 
Возможно в ситуации с Exchange Server какие-то свои тонкости .. надо рыть литературу ...
 
Ещё 1 вопрос но ето скорее по БД уже:
Код:
if valueForCheck = false then
begin
 ds1.CreateDataSet;
 ds1.Open;
 valueForCheck := true;
end
else
 ds1.EmptyDataSet;

ds1 - TClientDataSet, с помощью филддефа обьявил все поля но почему - то при компиляции при ds1.CreateDataSet ругается типа "Инвалид параметр". Когда же поля обьявляю Филд Едитором то работает но в этом случае ругается на тип WideString, без которого я никак. Могу сказать что следующий код работает, и в нём поля обьявлены FieldsDef-oм:

Код:
if check = false then
begin
  ds.CreateDataSet;
  ds.Open;
  check := true;
end
else
ds.EmptyDataSet;
 
<!--QuoteBegin-Barmutik+10:08:2005, 08:56 -->
<span class="vbquote">(Barmutik @ 10:08:2005, 08:56 )</span><!--QuoteEBegin-->Возможно в ситуации с Exchange Server какие-то свои тонкости .. надо рыть литературу ...
[snapback]23230" rel="nofollow" target="_blank[/snapback]​
[/quote]
В МСДН-е написанно
The EntryID changes when an item is moved into another store, for example, from your Inbox to a Microsoft Exchange Server public folder
 
Это да .. но написано что он является уникальным в пределах одного фолдера...


Насчёт базы данных .. более полный код в студию плиз .. по этому не понятно в чём проблема...
 
<!--QuoteBegin-Barmutik+10:08:2005, 11:47 -->
<span class="vbquote">(Barmutik @ 10:08:2005, 11:47 )</span><!--QuoteEBegin-->Это да .. но написано что он является уникальным в пределах одного фолдера...
Насчёт базы данных .. более полный код в студию плиз .. по этому не понятно в чём проблема...
[snapback]23247" rel="nofollow" target="_blank[/snapback]​
[/quote]
С Дата Сетом разобрался уже, просто не знаю всех тонкостей поэтому и возникают проблемы на ровном месте.
 
<!--QuoteBegin-Barmutik+10:08:2005, 10:47 -->
<span class="vbquote">(Barmutik @ 10:08:2005, 10:47 )</span><!--QuoteEBegin-->Это да .. но написано что он является уникальным в пределах одного фолдера...
Насчёт базы данных .. более полный код в студию плиз .. по этому не понятно в чём проблема...
[snapback]23247" rel="nofollow" target="_blank[/snapback]​
[/quote]
Упс забыл выйти, это я с аккаунта друга написал. Возникла проблема. У мну есть DBGridEh и TClientDataSet. В датасет загоняются данные о некоторых свойств из входящих сообщениях оутлука, и отображаются в датагриде. Мне надо сделать пару колонок грида скрытыми и некоторые неедитабле. Но я не могу связать колонки Датагрида с полями датасета так как грид матерится на то что у дата сета нету датапровайдера или датапакета. Я в этом вообще чайник, помоги советом что мне делать. Заранее благодарен!
 
Проблема с КлиентДатасетом следующая .. ему или провайдер подавай или сдеай его stand alone database. Для этого перед добавлением записей обозначь поля с помощью Fields. В делфях естьпример как это делать...

А ещё проще не майся таким делом .. восопльзуйся виртуальным контролом ... и в нём отображай данные... если конечно не критично именно использование БД.
 
Статус
Закрыто для дальнейших ответов.