Нужно достать из аутлука в текстовый файл некоторые данные, а именно: кому,от кого, время отправления, первая строка письма
Т.е программа должна это делать. Как из него вытащить информацию?
Данные из Outlook, как достать? :) |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
Данные из Outlook, как достать? :) |
striker |
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
Нужно достать из аутлука в текстовый файл некоторые данные, а именно: кому,от кого, время отправления, первая строка письма
Т.е программа должна это делать. Как из него вытащить информацию? |
volvo |
Сообщение
#2
|
Гость |
"DRKB -> ActiveX, COM и Другие технологии -> Работа с приложениями Microsoft Office -> Работа с Microsoft Outlook" смотрел? Там есть информация о работе с MS Outlook
|
striker |
Сообщение
#3
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
Единственное пока что там нашёл это как считать адрес отправителя:
Код 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 И то не особо понятно. Может у меня версия старая? Или где ещё глянуть? |
volvo |
Сообщение
#4
|
Гость |
Ну, проверить я ничего связанного с MS Outlook не могу. Я не пользуюсь им просто (он даже не установлен на моем компьютере), у меня другой клиент. Так что подождем того, кто пользуется именно Аутлуком...
|
volvo |
Сообщение
#5
|
Гость |
Так... Нашел компьютер с Аутлуком и Дельфи одновременно... Уточни, чего именно тебе надо получить? Информацию об Исходящих, или Входящих? Вот это:
procedure TForm1.Button1Click(Sender: TObject);Получает информацию обо всех входящих письмах, включая и текст письма. На форме - TMemo + TButton + TOutlookApplication (вкладка Servers), проверено в D2007 + WinXP + Office XP |
striker |
Сообщение
#6
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
Я тоже Аутлуком не пользуюсь и не пользовался никогда, знаю что это такое и всё
В куске этого кода начало для меня вообще темный лес, синхронизация как я понимаю Мне нужно сбросить в текстовый файл информацию из выбранного письма (вот тоже как сделать ) Письмо может быть 2х типов: входящее, исходящее. Наверное, нужно будет 2 кнопочки сделать Из исходящего поля: кому, время отправления, первая строка письма Из входящего: от кого, время отправления, первая строка письма Т.е пользователь выбирает письмо и тыкает на кнопочку в зависимости от его типа, так, наверное, получится, удобнее никак скорее всего. Спасибо, буду рад если ещё чем-нибудь поможешь |
striker |
Сообщение
#7
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
volvo, больше ничего не нашёл?
|
Unconnected |
Сообщение
#8
|
mea culpa Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
Так Volvo тебе уже подсказал всё, что нужно:)
Немного модифицировал вышеприведённый код, добавил только вывод в текстовый файл. Сразу говорю, не проверял, т.к. дельфи нет пока, но вроде всё верно. procedure TForm1.Button1Click(Sender: TObject); Mozilla Thunderbird рулит) Сообщение отредактировано: Unconnected - -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
Сообщение
#9
|
Гость |
Погоди... Тебе что, надо, чтобы было так: пользователь работает с Аутлуком, твоя программа либо висит где-то на заднем плане, либо вообще не запущена. Выбрали одно из писем, запустили/активировали твою программы, и она сохранила нужные данные? Ну, допустим, Имя приславшего тебе письмо, Текст самого письма, и дата отсылки - не проблема, получается очень просто, даже безо всяких компонентов:
try, но если тебе надо еще и реальный e-mail, с которого выслано сообщение, то тут будет "биг бада бум", этого ты через Automation Object не получишь, надо будет заморачиваться с интерфейсами. Это только сегодня поздно вечером или завтра, раньше у меня не получится... |
Unconnected |
Сообщение
#10
|
mea culpa Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
Цитата но если тебе надо еще и реальный e-mail, А в im.SenderName какой E-mail? Или просто имя отправителя? -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
Сообщение
#11
|
Гость |
Там просто имя отправителя.
|
striker |
Сообщение
#12
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
Цитата Погоди... Тебе что, надо, чтобы было так: пользователь работает с Аутлуком, твоя программа либо висит где-то на заднем плане, либо вообще не запущена. Выбрали одно из писем, запустили/активировали твою программы, и она сохранила нужные данные? Да И нужен реальный e-mail |
Unconnected |
Сообщение
#13
|
mea culpa Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
Реальный, в Оутлуке, если не ошибаюсь, аж в свойствах письма указан, даже не сразу найдёшь..
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
Сообщение
#14
|
Гость |
Цитата И нужен реальный e-mail Ну, тогда тестируй... У меня работает вроде:procedure TForm1.OutlookClick(Sender: TObject);В файл запишешь уже сам, наверное... |
striker |
Сообщение
#15
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
Спасибо, всё работает оч. хорошо.
Время я ещё добавил. Только вот ещё что, когда отправленное письмо выделяешь, то копируется адрес отправителя, а нужен получателя, т.е кому письмо |
volvo |
Сообщение
#16
|
Гость |
Угу... Значит, проверяй, в какой папке находишься, и если это "Sent Mail", то вытаскивать имя не через Reply, а так:
s_addr := ''; А вот как проверить, где ты находишься - в "Sent Items" или в Inbox - это сразу не скажу, надо проверять, опять нужна машина с MSO, это займет время... |
striker |
Сообщение
#17
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
Если будет возможность - посмотри, пожалуйста.
Время пока есть |
volvo |
Сообщение
#18
|
Гость |
Навскидку (проверь, работает ли) - смотреть, что возвращает:
var currFolderName: String; |
striker |
Сообщение
#19
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
Да, работает только пишет адрес правильный "кому" а перед ним имя отправителя, т.е моё
Сразу я чего-то пока не вижу где косяк закрался Сообщение отредактировано: striker - |
Unconnected |
Сообщение
#20
|
mea culpa Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
Цитата а перед ним имя отправителя, т.е моё Возможно, так и должно быть, типа objRecips.Item(i).Address; или mailItem.Recipients.Item(i).Address; уже содержат имя отправителя? Просто обрезай ненужную часть строки.. -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Текстовая версия | 11.05.2024 9:25 |