Страницы: 1
RSS
Чтение писем из gmail с помощью Excel
 
Нашел очень много кода про то, как отослать письмо из Экселя используя gmail аккаунт и ничего по поводу чтения писем из gmail. Попадаются только варианты с установкой каких-то exe файлов. Я бы читал gmail письма через Outlook, но он, к сожалению, для меня не доступен.

Может кто-то сталкивался с проблемой и знает решение?

И еще вопрос. Если чтение все-таки не возможно реализовать с помощью VBA, то если написать самому exe на C#, то как реализовать передачу данных из exe в Excel?

Заранее спасибо!
Изменено: alexkos - 05.10.2019 15:59:57
 
http://www.cyberforum.ru/vb-net/thread1816514.html
https://www.sql.ru/forum/930352/poluchenie-neprochitannyh-soobshheniy-s-pomoshhu-imap
и в подобном направлении.
По вопросам из тем форума, личку не читаю.
 
Если на c#, то можно написать надстройку, передать данные там не проблема.
Reading emails from Gmail in C#
 
Ну для вас передать данные не проблема может быть, а для меня да - проблема... Не подскажите, где почитать по этому поводу? Спасибо.
 
БМВ,спасибо, буду пробовать в этом направлении сначала. Если не пойдет, будут пытаться C# прикрутить каким-то образом.
 
Доброе время суток.
Цитата
alexkos написал:
Ну для вас передать данные не проблема может быть, а для меня да - проблема... Не подскажите, где почитать по этому поводу?
Ну, как правило начинают читать тут.
 
Ну, т.е. я должен написать на C# экзэшник, который будет получать данные от gmail.
Я экзешник буду запускать из эксель, и это экзешник будет вставлять в лист эксель данные, добытые с gmail. А далее я буду эти данные обрабатывать в эксель.

Блин, какой-то долгий путь получается... :(
 
Зачем? В VS сразу создаешь проект под Excel.
 
Изменено: Mnham - 05.10.2019 18:33:48
 
Огромное спасибо за наводку. Я то сам не программист, знаю основы VBA и C# на уровне "могу написать хелоу уорлд".

Т.е. я создаю этот экстеншн написанный на C# и добавляю его в эксель, а потом пользуюсь напрямую из Экселя. (такого я еще точно не делал, блин)

А все было бы ТАААК просто с Аутлук, но ... нету его :( :( :(
Код
Sub GetMessages()
    Dim objNS As Object
    Dim objOL As Object
    Dim i As Long
     
    Set objOL = CreateObject("Outlook.Application")
    Set objNS = objOL.GetNamespace("MAPI")
    With objNS.Folders("hhhh@gmail.com").Folders("Âõîäÿùèå")
        For i = 1 To .Items.Count
            'Cells(i, 14).Value = .Items(i).Subject
            If .Items(i).Subject = "To do" Then 'заглавие искомого сообщения
            MsgBox ("Email with " & .Items(i).Subject & " has been sent")
            End If
            'Cells(i, 15).Value = .Items(i).Body
        Next
    End With
    Set objNS = Nothing  
    Set objOL = Nothing
End Sub
Изменено: alexkos - 05.10.2019 20:01:42
 
Если не привязываться к Excel, то можно посмотреть в сторону Google API в их фирменном приложении Google Sheets. На stackoverflow есть несколько тем.
Если бы было больше вводных, написал бы простенький скриптик на Google apps script.
С уважением,
Федор/Все_просто
 
Цитата
Все_просто написал:
Если бы было больше вводных, написал бы простенький скриптик на Google apps script.
Огромное спасибо за предложение, но у меня на работе только эксель. Дома могу себе еще поставить VS и что-то там попытаться сотворить, но на работе даже Аутлук низзззяяяя. Просто в компании, где я работаю, криворукий IT департамент.
Есть стороннее купленное приложение, которое формирует документ и отправляет его, используя gmail, другим работникам компании. Отправить сообщение ОЧЕНЬ важно. Но сторонyее купленное приложение ИНОГДА не отправляет сообщение (я так понял, программеры не стали себя утруждать и не написали код, который бы проверял - отправилось сообщение или нет).
Вместо того, чтобы дать подзатыльник программерам, наше руководство сказало "проверяйте отправленную почту КАЖДЫЙ раз, когда отправляете сообщение". Делать мне больше нечего...
Я предложил проверять отправку из Экселя с помощью Аутлук. Ну вот теперь мне Аутлуком пользоваться нельзя ))))))) (это вопрос политический) Есть только эксель...

Стороннее приложение всегда вставляет в Subject письма для gmail номер документа. Его я знаю. Например, docNumber="HM123123". Мне надо получить от gmail только Subject и только последних двух-трех отосланных сообщений. Ну а потом я бы сделал что-то вроде

if Instr(1,emailSubject, docNumber)=False then msgbox("Ваше сообщение не было отправлено, пожалуйста повторите попытку")
Страницы: 1
Наверх