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

  • Автор темы Guest_Elvis_*
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest_Elvis_*

Гость
#1
Есть куча информация, про то как выдрать адресс отправителя из сообщения Оутлук, но не нашёл как выдрать адрес адрессата. Я не использую напрямую МайлАйтем, а делаю через ОлеВариант
Код:
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_
Помогите найти выход из данной ситуации.
Заранее благодарен.
 
G

Guest

Гость
#2
Код:
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;
.......................................................
Извените не тот код
 
B

Barmutik

Гость
#4
Вопрос встречный .. как прочитать почтовый адрес ОТ кого пришло письмо?
 
G

Guest

Гость
#5
<!--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.
 
B

Barmutik

Гость
#6
Просмотрев библиотеку типов у Отулука я не смог найти свойство Sender
у интерфейса MailItem...
 
E

Elvis

Гость
#7
<!--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, код рабочий я его проверял, а что это за обьект хрен его знает
 
B

Barmutik

Гость
#8
Интересно .. просто встал вопрос достать адресс отправителя через COM и как-то не могу его найти в письме ...
 
E

Elvis

Гость
#9
Ещё один вопрос есть ли у сообщения Оутлука какойнить уникаьный идентификатор, или чтонибудь уникальное которое неповторяется больше ни у одного письма. Очень хотелось бы чтобы такое было а то без него напряг.
 
B

Barmutik

Гость
#10
Не стоит задавать одинаковые вопросы в разных топиках...
 
E

Elvis

Гость
#11
<!--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 или нет?
 
E

Elvis

Гость
#13
<!--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% одинаковые я проверял
 
B

Barmutik

Гость
#14
Возможно в ситуации с Exchange Server какие-то свои тонкости .. надо рыть литературу ...
 
E

Elvis

Гость
#15
Ещё 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;
 
E

Elvis

Гость
#16
<!--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
 
B

Barmutik

Гость
#17
Это да .. но написано что он является уникальным в пределах одного фолдера...


Насчёт базы данных .. более полный код в студию плиз .. по этому не понятно в чём проблема...
 
P

pol_g

Гость
#18
<!--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]
С Дата Сетом разобрался уже, просто не знаю всех тонкостей поэтому и возникают проблемы на ровном месте.
 
E

Elvis

Гость
#19
<!--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. В датасет загоняются данные о некоторых свойств из входящих сообщениях оутлука, и отображаются в датагриде. Мне надо сделать пару колонок грида скрытыми и некоторые неедитабле. Но я не могу связать колонки Датагрида с полями датасета так как грид матерится на то что у дата сета нету датапровайдера или датапакета. Я в этом вообще чайник, помоги советом что мне делать. Заранее благодарен!
 
B

Barmutik

Гость
#20
Проблема с КлиентДатасетом следующая .. ему или провайдер подавай или сдеай его stand alone database. Для этого перед добавлением записей обозначь поля с помощью Fields. В делфях естьпример как это делать...

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