Хорошо, поэтому я помещал вспомогательные средства группы поверх вспомогательных средств группы на простой фрагмент кода, чтобы получить электронное письмо для отправки. То, что я пытался сделать, это получить электронное письмо для отправки через Outlook. Мой первый вопрос был runtime object define 287
на следующей строке:Отправка автоматизированной электронной почты из Access VBA через Outlook
Set appOutlookRec = appOutlookMsg.Recipients.Add
так, чтобы противостоять, что я добавил:
Set objNS = appOutlook.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
И остановил это. Теперь письмо будет сформировано, и я смогу использовать .display
, чтобы увидеть мой адрес электронной почты, но когда я попытаюсь использовать .send
, экземпляр Outlook закрывается до того, как будет отправлено письмо.
Чтобы отменить это, я принудительно открываю внешний вид, но я хотел бы проверить, открыт ли экземпляр. Чтобы открыть почтовый ящик, я использую:
Set appOutlook = CreateObject("Outlook.Application")
Set objNS = appOutlook.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
olFolder.Display
Могу ли я усложнять процесс автоматизации? Или я на правильном пути, и кто-то может помочь проверить, открыт ли экземпляр Outlook в окне проводника?
Благодаря
Update
Const olMailItem = 0
Const olTo = 1
Const olCC = 2
Const olFolderInbox = 6
Dim appOutlook As Object
Dim appOutlookMsg As Object
Dim appOutlookRec As Object
Dim objNS As Object
Dim olFolder As Object
Set appOutlook = CreateObject("Outlook.Application")
Set objNS = appOutlook.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
olFolder.Display
'Create a new empty email message
Set appOutlookMsg = appOutlook.CreateItem(olMailItem)
With appOutlookMsg
Set appOutlookRec = appOutlookMsg.Recipients.Add("[email protected]")
appOutlookRec.Type = olTo
.Subject = "Testing Closed Tickets"
.Body = "This is just a test."
'.Display
.Send
End With
Set appOutlookMsg = Nothing
Set appOutlook = Nothing
Set appOutlookRec = Nothing
ли вы пытаетесь '.Save' отправлять электронную почту до' .Send'? –
Хорошие (но странные) новости! Outlook является единственным приложением Office, в котором '= CreateObject (« Outlook.Application ») будет создавать экземпляр, если он не существует ** ИЛИ ** использовать существующий экземпляр, если Outlook уже запущен. – tbur
Можете ли вы разместить весь свой код, пожалуйста? Вы используете этот код из Outlook или другого источника (я предполагаю MS Access)? Вы можете сделать жизнь намного проще, обратившись к библиотеке времени выполнения Outlook в Access – enderland