Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Работа из Access с Outlook (A2003)
 
 автор: Joss   (04.10.2011 в 12:48)   личное сообщение
 
 

В качестве исходного примера использую статью Олега "Способы интеграции MS ACCESS и MS Outlook "

Поскольку при попытке отослать письмо Outlook запрашивает подтверждение на это действие, решил просто сохранить письма в папке "Исходящие". А они сохраняются в папке "Входящие". Кто знает как переключить на нужную папку?

Для примера текст процедуры

'создает новое письмо с вложением для нескольких адресатов
Dim OL_App As Outlook.Application
Dim OL_ItemMail As Outlook.MailItem
Dim RecipientTask As Recipient
Dim OL_Pattern As Outlook.RecurrencePattern

Set OL_App = CreateObject("Outlook.Application") ' получаем объект Outlook
Set OL_ItemMail = OL_App.CreateItem(olMailItem) ' создаем новое письмо

With OL_ItemMail
    .To = "Мой@адрес"  'адрес получателя
    .Subject = "Тест программы" & " за " & CStr(Date) ' заголовок письма
    .Body = "Тело тестового сообщения"
   
'   .OriginatorDeliveryReportRequested = True 'Уведомление о доставке
'   .ReadReceiptRequested = True 'Уведомление о прочтении
   
   .Save ' сохраним письмо - если использовать только это действие, письмо сохраняется в папке "Входящие", а надо "Исходящие"
If Not Me.NoSend Then 
   .Send ' отправим письмо - а если используется и это действие, то письмо сохраняется в папке "Отправленные"
End If
End With

Set OL_ItemMail = Nothing ' очищаем объект

  Ответить  
 
 автор: Joss   (04.10.2011 в 17:08)   личное сообщение
 
 

Кажется ничего сделать нельзя. Был наверно какой-то сбой. Сейчас письма попадают в папку "черновики". Чтобы они попадали в папку "Исходящие" должна быть команда "отправить". И опять тот же запрос на подтверждение. Впрочем можно выделить все письма из черновиков и переместить в папку "Исходящие". Но это ручная работа, которой хочется избежать.

Может у кого-то есть идеи?

  Ответить  
 
 автор: Анатолий (Киев)   (05.10.2011 в 10:58)   личное сообщение
 
 

Этот код делает активной папку "Исходящие". По логике, новое письмо должно сохраняться в ней.
Set myNamespace = myolApp.GetNamespace("MAPI")
Set myolApp.ActiveExplorer.CurrentFolder = myNamespace.GetDefaultFolder(olFolderOutbox)


Кроме того, у вашего OL_ItemMail есть метод Move, который может переместить письмо в папку, указанную с помощью того же GetDefaultFolder.

А чтоб отправлять из Outlook письма без лишних вопросов, я использую библиотеку RDO. Поройтесь в инете.

  Ответить  
 
 автор: Joss   (05.10.2011 в 12:46)   личное сообщение
 
 

Попробовал. Письма сохраняются в папке "Черновики"

Dim OL_App As Outlook.Application
Dim OL_ItemMail As Outlook.MailItem
Dim OL_NameSpace As Outlook.NameSpace
Dim RecipientTask As Recipient
Dim OL_Pattern As Outlook.RecurrencePattern
Dim OL_FolderMail As Outlook.MAPIFolder

Set OL_App = CreateObject("Outlook.Application") ' получаем объект Outlook
Set OL_NameSpace = OL_App.GetNamespace("MAPI") 'получаем Namespace

Set OL_App.ActiveExplorer.CurrentFolder = OL_NameSpace.GetDefaultFolder(olFolderOutbox)

  Ответить  
 
 автор: Joss   (05.10.2011 в 12:50)   личное сообщение
 
 

Пробовал и так

Dim OL_App As Outlook.Application
Dim OL_ItemMail As Outlook.MailItem
Dim OL_NameSpace As Outlook.NameSpace
Dim RecipientTask As Recipient
Dim OL_Pattern As Outlook.RecurrencePattern
Dim OL_FolderMail As Outlook.MAPIFolder

Set OL_App = CreateObject("Outlook.Application") ' получаем объект Outlook
Set OL_NameSpace = OL_App.GetNamespace("MAPI")
' получаем ссылку на папку исходящие
Set OL_FolderMail = OL_NameSpace.GetDefaultFolder(olFolderOutbox)
Тоже сохраняются в папке "Черновики"

  Ответить  
 
 автор: Анатолий (Киев)   (05.10.2011 в 15:08)   личное сообщение
 
 

...
Set OL_FolderMail = OL_NameSpace.GetDefaultFolder(olFolderOutbox)
...
.Save
.Move(OL_FolderMail)
...

  Ответить  
 
 автор: Joss   (06.10.2011 в 18:27)   личное сообщение
 
 

Письма перемещаться-то перемещаются, но отправляться не хотят. Прав был Олег. Смотри его пост ниже. Бросил это неблагодарное дело и поставил программку, о которой написал ниже.

Работает, только свистит. Правда пришлось самому задержку на 5 сек ставить между письмами, а то провайдер за спамера принимает.

  Ответить  
 
 автор: osmor   (05.10.2011 в 10:50)   личное сообщение
 
 

переместить не проблема
Получаем папку Draft и от туда все item.Move в папку olFolderOutbox

Dim OL_App As Outlook.Application
Dim OL_NameSpace As Outlook.NameSpace
Dim OL_FolderMail As Outlook.MAPIFolder
Dim OL_ItemMail As Outlook.MailItem
Dim OL_Attachment As Outlook.Attachment
' получаем объект Outlook
Set OL_App = CreateObject("Outlook.Application")
'получаем Namespace
Set OL_NameSpace = OL_App.GetNamespace("MAPI")
' получаем ссылку на папку черновики
Set OL_FolderMail = OL_NameSpace.GetDefaultFolder(olFolderDrafts)
' перебираем все письма в папке и перемещаем в папку исходящие
For Each OL_ItemMail In OL_FolderMail.Items
     OL_ItemMail.Move  OL_NameSpace.GetDefaultFolder(olFolderOutbox)

next


Только это ничего не даст.
Есть есть еще свойство Submitted вот его программно в true мне поставить не удалось. а без этого письмо не уходит, у меня не получилось.
Попробуй при создании письма установить это свойство, но не уверен, оно вообще read-olny
http://msdn.microsoft.com/en-us/library/ff865326.aspx

  Ответить  
 
 автор: Joss   (05.10.2011 в 15:09)   личное сообщение
 
 

Проблема с системой безопасности Outlook решена при помощи сторонней программы. (То всплывающее окошко с предупреждением, из-за чего я стал всё городить.
Сайт разработчика MAPILab.ltd - http://www.mapilab.com/
Программа называется - Advanced Security
Объём - 1,3 Мбайт

Контролирует обращения к системе безопасности Outlook. Легко ставится и деинсталлируется. Есть русский интерфейс и справка.

Прямой адрес для скачки - http://www.mapilab.com/files/security_outlook.zip

P.S. Извиняюсь, не знаю, как поставить тэги для URL.

  Ответить  
 
 автор: Анатолий (Киев)   (05.10.2011 в 15:42)   личное сообщение
 
 


P.S. Извиняюсь, не знаю, как поставить тэги для URL.


Давно прошу товарища Osmor-a добавить тэги...
Но если сообщение сохранить, а потом открыть для правки - они есть.

  Ответить  
 
 автор: osmor   (05.10.2011 в 15:55)   личное сообщение
 
 

сделаю

  Ответить  
 
 автор: osmor   (05.10.2011 в 17:12)   личное сообщение
 
 

Сделал...
тест
http://hiprog.com

  Ответить  
 
 автор: osmor   (05.10.2011 в 18:00)   личное сообщение
 
 

тест

  Ответить  
 
 автор: osmor   (05.10.2011 в 18:02)   личное сообщение
 
 

тест

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList