|
Прием почты через Outlook. Как отобразить окно "Ход отправки и получения сообщений" ?
|
|||
---|---|---|---|
#18+
Здравствуйте! Народ, тема с приемом сообщений посредством Outlook неоднократно всплывает на различных тематических форумах. Вероятно, это единственный практически доступный срособ принять новую почту с сервера. Я использую для этих целей вот такой исходник (извините, автора не помню, нарыл где-то...): (Код расположен в форме с кнопкой CommandButton1.) Public WithEvents oItems As Outlook.Items Private Sub CommandButton1_Click() ' запускаем Outlook Dim oOutlook As New Outlook.Application ' Очень важно: объясняем, что события oItems - это события папки Inbox в Outlook Set oItems = oOutlook.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items 'Дальше просто запускаем прием почты со всех учетных записей Dim oNameSpace As Outlook.Namespace Set oNameSpace = oOutlook.GetNamespace("MAPI") oNameSpace.SyncObjects("Все учетные записи").Start End Sub '… и ловим события появления нового сообщения Private Sub oItems_ItemAdd(ByVal Item As Object) MsgBox Item.To & " " & Item.Subject, , "Список новых писем " End Sub End Sub Собственно, это основа. Но уже на этой стадии возникают некоторые неудобства. Пользователь не видит хода процесса получения почты, а при медленном соединении , да и при наличии ошибок можно ошибочно подумать, что новых писем нет. Вот, собственно, вопрос: А можно ли вызывать окно "Ход отправки и получения сообщений", чтобы пользователь мог видеть процесс приема почты? И возможно ли получить код ошибки, если сообщения не были приняты/отправлены по причине сбоя связи или еще какого форс-мажора? Я, к сожалению, нашел недостаточно инфы по Outlook, чтоб решить эту задачу. Если что, тыкните мордой в ссылку, где можно разрулить поставленную задачу. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2014, 15:17 |
|
Прием почты через Outlook. Как отобразить окно "Ход отправки и получения сообщений" ?
|
|||
---|---|---|---|
#18+
Вот, накопал код, который, как я понимаю, аналогичен нажатию кнопки "Отправить и получить". Но он почему-то не фунциклирует так, как надо (или я этого не вижу...)) ). Public Function SendReceiveAll() As Boolean Dim oExplorer As Outlook.Explorer Dim olNS As Outlook.NameSpace Dim olFolder As Outlook.MAPIFolder Dim oCtl As Office.CommandBarControl Dim oPop As Office.CommandBarPopup Dim oNS As Outlook.NameSpace Dim oCB As Office.CommandBar Dim oOutlookApplication As Outlook.Application On Error Resume Next Set oOutlookApplication = GetObject(, "Outlook.Application") If oOutlookApplication Is Nothing Then Err.Clear On Error GoTo ErrorHandler Set oOutlookApplication = _ CreateObject("Outlook.Application") Set olNS = oOutlookApplication.GetNamespace("MAPI") Set olFolder = olNS.GetDefaultFolder(olFolderInbox) Set oExplorer = olFolder.GetExplorer End If On Error GoTo ErrorHandler Set oCB = _ oOutlookApplication.ActiveExplorer.CommandBars("Standard") Set oCtl = oCB.Controls("Send/Receive") ' переписал как "Отправить и получить" oCtl.Execute SendReceiveAll = True ErrorHandler: End Function Взял код тут: http://www.freevbcode.com/ShowCode.asp?ID=2139 Догадываюсь, что используя объекты Outlook, можно добраться до любой кнопочки, и при этом получить необходимый результат. Но вот как знать, какие объекты юзать? И каковы их свойства? Буду исследовать объекты посредством окна Locals. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2014, 16:26 |
|
|
start [/forum/topic.php?desktop=1&fid=60&tid=2156520]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 154ms |
0 / 0 |