2013-09-13 6 views
-1

Я работаю над макросом vba, чтобы извлечь текст, содержащийся в письме, которое отправляется мне каждый день по указанному адресу электронной почты. Я хочу сгенерировать макрос vba, который запускается, когда это придет. Текст должен быть сохранен в текстовом файле «c: \ temp \ email.txt»Извлечь основной текст из Outlook

Я собрал различные биты кода, но ничего действительно не работает.

Может ли кто-нибудь посоветовать простой способ vba для этого?

+0

Поделитесь с нами кодом, которое вы пробовали и не работали, чтобы мы не предлагали вам то, что вы уже пробовали. – Renan

+0

Честно говоря, я пробовал несколько бит кода, предлагаемый на этом сайте, но я не вижу, где может быть включена только почта с/на конкретный адрес электронной почты. Я не хочу, чтобы он работал над каждым элементом, который приходит. Так что действительно начинаю с нуля на этом ... спасибо – user2778021

ответ

2

Вы можете найти мой ответ 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 
+0

Большое спасибо за ваши комментарии - очень приятно узнать людей, которые проводят время, пытаясь помочь другим. Я попытаюсь проработать ваши комментарии и посмотреть, где я получу! – user2778021

+0

@ пользователь2778021. Добро пожаловать и удачи. –

+0

Привет - когда я пытаюсь запустить это, он говорит: Недействительный атрибут в подфункции или функции - подчеркивает «WithEvents MyNewItems As Outlook.Items» – user2778021

Смежные вопросы