Отправить электронное письмо из папки проекта

с приведенным ниже кодированием VBA, я могу отправить все письма из папки Outlook, но единственная проблема заключается в том, что я должен предоставить имя родительской папки. Можем ли мы получить эту информацию с помощью кодирования, поскольку этот макрос будет использоваться другим пользователем, который не знаком с VBA.

Dim lDraftItem As Long Dim myOutlook As Outlook.Application Dim myNameSpace As Outlook.NameSpace Dim myFolders As Outlook.Folders Dim myDraftsFolder As Outlook.MAPIFolder Set myOutlook = Outlook.Application Set myNameSpace = myOutlook.GetNamespace("MAPI") Set myFolders = myNameSpace.Folders Set myDraftsFolder = myFolders("[email protected]").Folders("Drafts") For lDraftItem = myDraftsFolder.Items.Count To 1 Step -1 If Len(Trim(myDraftsFolder.Items.Item(lDraftItem).To)) > 0 Then myDraftsFolder.Items.Item(lDraftItem).Send End If Next lDraftItem 

Заменить эту строку:

 Set myDraftsFolder = myFolders("[email protected]").Folders("Drafts") 

С этими тремя строками:

 Dim sUser As String sUser = myFolders.Item(2).Name Set myDraftsFolder = myFolders(sUser).Folders("Drafts") 

Второе имя папки будет именем учетной записи пользователя (адрес электронной почты), который вы можете сохранить в виде строки и перейти в myFolders() чтобы получить соответствующую учетную запись.

Это должно работать …

 Set myDraftsFolder = myNamespace.GetDefaultFolder(olFolderDrafts) 

* Редактировать *

Код ниже, вероятно, является лучшей функцией для использования; он включает проверку ошибок, поэтому любые сообщения электронной почты с недопустимыми полями в разделе «Кому» не должны прерывать функцию

 Sub TestSendDrafts() Call SendDraftMail End Sub Function SendDraftMail() As Boolean On Error GoTo ExitFunction Dim ThisNameSpace As Outlook.NameSpace: Set ThisNameSpace = Application.GetNamespace("MAPI") Dim DraftFolder As Outlook.MAPIFolder: Set DraftFolder = ThisNameSpace.GetDefaultFolder(olFolderDrafts) Dim Var As Variant, i As Long, Difference As Long, SentItems As Long For i = DraftFolder.Items.Count To 1 Step -1 Set Var = DraftFolder.Items.Item(i) DoEvents If Var.Class = olMail Then If Len(Trim(Var.To)) > 0 Then On Error Resume Next Var.Send If Err.Number = 0 Then SentItems = SentItems + 1 On Error GoTo ExitFunction End If End If Next i Debug.Print "Sent " & SentItems & " message(s) from 'Draft E-mail'." SendDraftMail = True ExitFunction: End Function 
  • Outlook Добавить папку поиска через Excel VBA
  • Почта Outlook с excel: проблема с текстовым текстом и переменной
  • Нет доступных макросов при открытии Excel из макроса Outlook
  • Сканировать выделенные ячейки (ы) для конкретного текста и пересылать почту правильному получателю (получателям)
  • Извлеките ВСЕ IP-адреса из Microsoft Outlook Messsage с помощью макросов
  • Как открыть Excel, если он еще не открыт
  • Импортировать группу контактов из Outlook - excel vba
  • Скопируйте содержимое таблицы в тело письма из папки «Входящие» Outlook в Excel
  • Как защитить паролем электронную почту в Outlook
  • Адрес X500 вместо передачи адреса электронной почты отображается при пересылке на лист Excel
  • excel VBA Заменить текст в файле Outlook OFT от excel
  • Interesting Posts

    Искать строку ввода в любой заданной папке и экспортировать результат в лист Excel

    Исключение POI Apache Часть с именем '/docProps/core.xml' уже существует

    Копировать формулу по столбцам

    VBA Sort Union для выбора нескольких диапазонов

    Excel для конкатенации одной строки за один раз до конца файла

    Как я могу выбрать из раскрывающегося списка как то же значение (Apache poi) excel selenium webdriver java

    Excel VBA: изменение события нажатия кнопки на событие изменения значения ячейки

    Программа C # слишком длинна для отображения на листе excel

    Что я испортил в цикле VBA для каждого листа?

    Excel / vba найти символ, заменить и сделать два символа после суперссылки

    Код Excel VBA для простой формулы между ячейками

    Код VBA для обновления ссылок, если он связан с рабочей книгой

    VBA для CountBlank 10 лучших строк каждого столбца (от 1 до 50)

    Если и функции vlookup используются вместе

    Вставить ячейку null excel в качестве пустой ячейки в базе данных

    Давайте будем гением компьютера.