Вы можете найти мой ответ How to copy Outlook mail message into excel using VBA or Macros дает вам начало.
Этот ответ показывает, как запустить папку «Входящие», извлекая выбранную информацию из каждого электронного письма, включая отправителя, тему и текст. С этой целью вы можете написать макрос, который ищет папку «Входящие» для интересующего письма и экспортирует его в текстовый файл.
Что вы действительно хотите - это процедура событий, которая запускается, когда элемент добавлен в папку «Входящие», но более продвинутый, поэтому сначала создайте макрос, который сначала выполняет поиск в папке «Входящие».
У Outlook есть надежная система безопасности, поэтому вы найдете при запуске макроса поиска, который вы должны дать ему разрешение на доступ к своим сообщениям. Вы можете самостоятельно сертифицировать свои собственные макросы, но я никогда не управлял последним шагом подавления сообщения «Макрос получает доступ к вашим сообщениям электронной почты». Если вы запускаете макрос один раз в день, предоставление разрешения не является проблемой, но если вы хотите иметь процедуру регистрации событий, вам нужно будет подтвердить разрешение каждые 10 минут.
Посетите следующие сайты для получения информации или обратиться за помощью в другом месте:
я могу получить инструкции в первом, но не во втором.
Если вы можете взломать проблему «Управление доверенными корневыми сертификатами», добавление процедуры обработки событий не составляет труда. В редакторе Visual Basic в Outlook, Исследователь проекта будет выглядеть примерно так:
- Project1(VbaProject.OTM)
+ Microsoft Office Outlook Objects
+ Forms
+ Modules
Нажмите плюсы, как необходимо, чтобы получить:
- Project1(VbaProject.OTM)
- Microsoft Office Outlook Objects
* ThisOutlookSession
+ Forms
+ Modules
Выберите ThisOutlookSession
. Это похоже на модуль, но имеет дополнительные привилегии. Скопируйте приведенный ниже код в ThisOutlookSession
, и у вас есть начало поисковой процедуры, которую вы ищете.
Option Explicit
Public WithEvents MyNewItems As Outlook.Items
Private Sub Application_MAPILogonComplete()
Dim NS As NameSpace
Set NS = CreateObject("Outlook.Application").GetNamespace("MAPI")
With NS
Set MyNewItems = NS.GetDefaultFolder(olFolderInbox).Items
End With
End Sub
Private Sub myNewItems_ItemAdd(ByVal Item As Object)
Dim text As String
Debug.Print "--------------------"
Debug.Print "Item added to Inbox"
With Item
Debug.Print "Subject: " & .Subject
Debug.Print "Sender name: " & .SenderName
Debug.Print "Sender address: " & .SenderEmailAddress
text = Mid(.Body, 1, 100)
text = Replace(text, vbLf, "{lf}")
text = Replace(text, vbCr, "{cr}")
text = Replace(text, vbTab, "{tb}")
text = Replace(text, Chr$(160), "{nbsp}")
Debug.Print "Start of body: " & text
End With
Поделитесь с нами кодом, которое вы пробовали и не работали, чтобы мы не предлагали вам то, что вы уже пробовали. – Renan
Честно говоря, я пробовал несколько бит кода, предлагаемый на этом сайте, но я не вижу, где может быть включена только почта с/на конкретный адрес электронной почты. Я не хочу, чтобы он работал над каждым элементом, который приходит. Так что действительно начинаю с нуля на этом ... спасибо – user2778021