Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
vav
1

Автообработка вложений в Outlook|OutlookExpress

28.11.2007, 12:43. Просмотров 1756. Ответов 8
Метки нет (Все метки)


Возникла необходимость автообработки вложений в емале Outlook|OutlookExpress, но нет опыта.
Подскажите как это делается на ВБ.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2007, 12:43
Ответы с готовыми решениями:

Связь с OutlookExpress из VB
Прошу помощи!!! Как юзать OutlookExpress(добавить в адресную книгу или просто запустить его) из...

Обработка вложений Outlook
Всем доброго времени суток! Имеется следующая задача: С определенной периодичностью на...

Получение вложений в outlook
Добрый день. Пытаюсь создать скрипт для вставки в правило с целью получения вложенных файлов в...

Outlook. Автоматическое сохранение вложений
Для автоматического сохранения вложений при приеме новых писем у меня поставлен следующий макрос: ...

__________________
Помогаю в написании студенческих работ здесь.
8
0 / 0 / 0
Регистрация: 05.12.2006
Сообщений: 19
28.11.2007, 15:15 2
Только сохранив на диске.
Set myOlApp = CreateObject('Outlook.Application')
Set myNamespace = myOlApp.GetNamespace('MAPI')
Set myFolder =_ myNamespace.GetDefaultFolder(olFolderInbox)
Set myItem = myFolder.Items(2) 'или вместо 2 subject письма
Set myAttch =myItem.Attachments
myAttch.Item(1).SaveAsFile 'C:My Documents ' & _
myAttch.Item(1).DisplayName
что-то типа того только сначала проверяй myAttch.count
0
vav
29.11.2007, 13:14 3
У меня есть следующий код:
Код
Dim OLApp As Application
Dim mNameSpace As NameSpace
'Dim mFolder As MAPIFolder
Dim AllMessages As Items

Private Sub Command1_Click()
    OLApp.Quit
    Set OLApp = Nothing
    End
End Sub

Private Sub Form_Load()
Dim thismessage  As MailItem

    Me.Show
    Screen.MousePointer = vbHourglass
On Error GoTo OutlookNotStarted
    Set OLApp = CreateObject('Outlook.Application')
On Error GoTo NoMAPINameSpace
    Set mNameSpace = OLApp.GetNamespace('MAPI')
    Set AllMessages = mNameSpace.GetDefaultFolder(olFolderInbox).Items
    MSFlexGrid1.ColWidth(0) = MSFlexGrid1.Width * 0.3
    MSFlexGrid1.ColWidth(1) = MSFlexGrid1.Width * 0.5
    MSFlexGrid1.ColWidth(2) = MSFlexGrid1.Width * 0.2
    MSFlexGrid1.Row = 0
    MSFlexGrid1.Col = 0: MSFlexGrid1.Text = 'Sender'
    MSFlexGrid1.Col = 1: MSFlexGrid1.Text = 'Subject'
    MSFlexGrid1.Col = 2: MSFlexGrid1.Text = 'Date sent'
    For Each thismessage In AllMessages
        MSFlexGrid1.Row = MSFlexGrid1.Row + 1
        MSFlexGrid1.Col = 0
        MSFlexGrid1.Text = thismessage.SenderName
        MSFlexGrid1.Col = 1
        MSFlexGrid1.Text = thismessage.Subject
        MSFlexGrid1.Col = 2
        MSFlexGrid1.Text = thismessage.SentOn
    Next
    Screen.MousePointer = vbDefault
    Exit Sub
    
OutlookNotStarted:
    MsgBox 'Could not start Outlook'
    Screen.MousePointer = vbDefault
    Exit Sub
NoMAPINameSpace:
    MsgBox 'Could not get MAPI NameSpace'
    Screen.MousePointer = vbDefault
    Exit Sub
End Sub

Private Sub MSFlexGrid1_Click()
Dim thismessage As MailItem
    currentrow = MSFlexGrid1.Row
    MSFlexGrid1.Col = 0
    MSFlexGrid1.ColSel = 2
    Set thismessage = AllMessages.Item(currentrow)
    txtBody.Text = ' ' & thismessage.Body
End Sub
из книги Visal Basic и VBA для профессионалов, на компе
стоит Windows95+IE5 и MOffice97.
Данные из Outlook даже не загружаются, в чем м.б. причина?
0 / 0 / 0
Регистрация: 05.12.2006
Сообщений: 19
29.11.2007, 13:49 4
Не забыл поставить референс на объектную модель оутлук? и флексгрид задай необходимое кол-во строк. Попробуй использ. Set OLApp = GetObject(, 'Outlook.Application'), предварительно запустив оутлук.
0
0 / 0 / 0
Регистрация: 03.12.2007
Сообщений: 16
08.12.2007, 23:57 5
V Outlook kak zalezt' vezde napisanno.
Mozhet kto slyshal kak v OE raskusit'.
0
vav
12.12.2007, 09:32 6
Во-во, сам бы хотел знать. Но и с Отлук пока проблем хватает - м.б. кто знает как проще фильтровать сообщения по дате (.item.restrict интересно тут не поможет, если да то как).
0 / 0 / 0
Регистрация: 09.12.2007
Сообщений: 8
12.12.2007, 11:39 7
Лучше использовать MSMAPI, Outlook.Application требует наличие MS Outlook из офиса на клиенте, а MSMAPI умеет взаимодействовать с MS Outlook Express и с MS Outlook из MS Office. Далее пример кода:

Dim MessageCtrl ' элемент управления MAPIMessages Control
Dim SessionCtrl ' элемент управления MAPISession Control
Set SessionCtrl = CreateObject('MSMAPI.MAPISession')
If Err.Number <> 0 Then ' если невозможно инициализировать элемент управления - закрыть диалог
MsgBox 'Error # ' & CStr(Err.Number) & vbLf & err.Description
Err.Clear ' Очистить ошибку
Unload vbCancel ' закрыть диалог
End If
Set MessageCtrl = CreateObject('MSMAPI.MAPIMessages')
SessionCtrl.DownloadMail = False ' не получать почту при подключении
SessionCtrl.SignOn ' установить сессию
MessageCtrl.SessionID = SessionCtrl.SessionID ' установить соответствие между элементами управления
MessageCtrl.Compose ' подготовка к созданию нового сообщения
MessageCtrl.RecipAddress = 'user@domain.com'
MessageCtrl.MsgSubject = 'Subject'
MessageCtrl.MsgNoteText = 'Message body'
'Дальше собственно атачи можно лепить, читай MSDN
MessageCtrl.Send False ' отправить

Собственно и все!
0
0 / 0 / 0
Регистрация: 09.12.2007
Сообщений: 8
12.12.2007, 12:33 8
Sorry, просили обработку
Dim MessageCtrl ' элемент управления MAPIMessages Control
Dim SessionCtrl ' элемент управления MAPISession Control
Set SessionCtrl = CreateObject('MSMAPI.MAPISession')
On Error Resume Next ' включить обработку ошибок выполнения
If Err.Number <> 0 Then ' если невозможно инициализировать элемент управления - закрыть диалог
MsgBox 'Error # ' & CStr(Err.Number) & vbLf & err.Description
Err.Clear ' Очистить ошибку
Unload vbCancel ' закрыть диалог
End If
Set MessageCtrl = CreateObject('MSMAPI.MAPIMessages')
SessionCtrl.DownloadMail = bCheckMail ' получать ли почту при запуске диалога
SessionCtrl.SignOn ' установить соединение
MessageCtrl.SessionID = SessionCtrl.SessionID ' установить соответствие между элементами управления
With MessageCtrl
For i=0 To .MsgCount-1 ' Переберем все сообщения
.MsgOrigDisplayName 'Адрес
.MsgSubject 'Тема
.MsgDateReceived ' дата
.MsgID ' код почтового сообщения
.MsgNoteText 'Тело
Next
End With
И обрабатывай как хочешь
0
0 / 0 / 0
Регистрация: 03.12.2007
Сообщений: 16
04.02.2008, 19:21 9
Hi. U menja vopros k prodolzheniju temy. osobenno k VGooz Poproboval tvoj kod s MSMAPI, no on trebuet nalichaja outlook, posmotri vnimatel'nee kogda ty zapuskaesh MSMAPI , zapuskaetsja Outlook i mozhno videt' , chto messages peredaetsja v Outbox i kak ty tam nastrevaeshsja na SMTP Server? .
Tak vot vopros v sledueschem: Ljudi, kto znaet kak otsylat' message na kuchu adressov, no prietom ne ispol'zovav nikakoj mailClient? Winsock mozhet u menja est' kod , no ja ne mogu s nim otoslat' odno soobschenie kuche klientov, poluchaetsja pridetsja delat' takujuzhe kuchu soobschenij, no ne hocetsja.
U kogo est' mysli Help me plz.!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.02.2008, 19:21

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Скрипт на сохранение вложений outlook
Добрый день, друзья! нужна помощь! нужен vbs скрипт, который будет в оутлуке искать письма от...

Режим отображения вложений в Outlook 2016
Можно ли сделать чтобы вложения отображались так, как это было в 2010/2013 Outlook? С отображением...

Сохранение всех вложений текущего сообщения в Outlook
Здравствуйте! Нужно сохранить все вложения текущего письма, т.е. на котором стою. Нашел как...

Макрос для массовой распечатки вложений Outlook
Всем привет, Я когда-то учил Java и PHP, так что могу понять логику несложного скрипта, но тут...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.