Вопрос по VBA и Outlook 2003
Люди, подскажите кто шарит. Хочу отправить запрос с телефона емейлом роботу в VBA (Excel), чтобы прислал текущее состояние робота и системы.
Аутлук на компе принимает запрос (простой емейл с текстом в теле) и че дальше? как-то его надо считать в VBA. Где его искать и как? Кто что подскажет, как лучше сделать?
Отправлять из VBA как-то проще было…
я бы сделал проще и устойчивее:
VBA проверяет папку с письмами по расписанию (каждую минуту например),
если появляется файл (письмо) с нужным содержанием, то отправляет Вам что надо.
А из Excel уже проверять его наличие.
Лучше поставить на комп и на мобильник приложение Dropbox с единым аккаунтом и роботом просто периодически сбрасывать файл в нужную папку на локальном компе. На телефоне файл автоматом синхронизируется и вы увидите состояние своего робота.
Опционально можно завести специальный файл для команд роботу.
ну можно и так конечно.
просто, быстро, бесконечно расширяемо, не нужно писать письма(небезопасные), минимум знаний.
намного безопаснее расшаривания папки на компе с роботом
особенно осознавая, что за этим стоит твой код,
каждую строчку которого ты понимаешь и знаешь.
А его наличие уже проверять из Excel VBA
… вот пример (находится за пару минут) с планеты эксель, почти все необходимое в нем есть:
Private Sub Application_NewMail()
Set myOlApp = Application
Set myNameSpace = myOlApp.GetNamespace(«MAPI»)
Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
Set myitem = myFolder.Items(myFolder.Items.Count)
If myitem.SenderName = «Нужный отправитель» Then
txt = myitem.Body
a = Split(txt, vbNewLine)
For i = 0 To UBound(a)
If InStr(1, a(i), «При трассировке пользователем») > 0 Then Stop: us = «FIO» ' тут необходимо распарсить нужный текст
If InStr(1, a(i), «сервер — клиент:») > 0 Then Stop: Ls = 123 ' тут необходимо распарсить нужный текст
If InStr(1, a(i), «клиент — сервер: „) > 0 Then Stop: UpLs = 123 ' тут необходимо распарсить нужный текст
If InStr(1, a(i), “тестовый объем: „) > 0 Then: dSize = 1234 ' тут необходимо распарсить нужный текст
Next
Set XL = CreateObject(“excel.application»)
XL.Visible = False
xlsFileName = «C:\test.xls» 'Путь к вашему файлу
Set b = XL.workbooks.Open(xlsFileName)
Set r = b.Application.Range(«DATA») 'имя вашей таблицы
i = r.rows.Count
r(i + 1, 1) = us
r(i + 1, 2) = Ls
r(i + 1, 3) = UpLs
r(i + 1, 4) = dSize
b.Close True
XL.Quit
End If
End Sub