Есть необходимость из Excel осуществлять отправку ранее сохраненных писем (папка "Черновики"). Код отправки см. ниже. Код работает, НО если перед отпавкой в Оутлуке открыть папку Черновики и выбрать любое сообщение (не открыть, а просто "встать" на него), то часть писем не отправиться и при отправке будет выдана ошибка: Run-time error ... "Этот метод нельзя использовать со встроенным элементом отправки почты". Что это значит? Почему так происходит? И как это можно победить?
Код
Sub SendSaved()
Dim oOutApp As Outlook.Application
Dim oNamespace As Outlook.Namespace
Dim oFolder As Outlook.MAPIFolder
Dim oMail As Outlook.MailItem
Dim i As Long
Set oOutApp = GetObject(, "Outlook.Application")
Set oNamespace = oOutApp.GetNamespace("MAPI")
Set oFolder = oNamespace.GetDefaultFolder(olFolderDrafts)
For i = 1 To oFolder.Items.Count
Set oMail = oFolder.Items.Item(i)
oMail.Send
Set oMail = Nothing
Next
Set oFolder = Nothing
Set oNamespace = Nothing
Set oOutApp = Nothing
End Sub
К сожалению, не более чем догадки. По идее, наличие курсора на строке с этим сообщением никак влиять не должно. Может, дело не в том? Черновик может быть не готов к отправке (например, не введен адресат: куда машине его отправить?) Какая-то из таких ситуаций может вызвать ошибку, при этом макрос прервется и не отправятся все остальные, которые были не отправлены на момент обработки этого, сообщения.
Следствие из третьего закона Чизхолма: "Даже если ясность изложения исключает неверное толкование, все равно найдется кто-то, кто поймет Вас неправильно."
For i = oFolder.Items.Count To 1
Set oMail = oFolder.Items.Item(i)
oMail.Send
Set oMail = Nothing
Next
2. Вполне возможно, что при выделении письма включается предпросмотр письма, который блокирует доступ к нему на отправку. Самому повторить не удалось, поэтому тоже только догадки.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
PerfectVam написал: Черновик может быть не готов к отправке
с письмами точно все впорядке.
Цитата
The_Prist написал: Вполне возможно, что при выделении письма включается предпросмотр письма
Вы правы область чтения включена и насколько я понимаю это и есть причина, поскольку если Область чтения выключить, то письма уходят без ошибок. Но область чтения должна быть включена (для выборочного контроля писем и содержания перед отправкой).
Как же можно победить данную проблему?
Мне видятся два варианта: 1. На время отправки как-то выключить обновление Области чтения 2. Перед отправкой сделать активной другую папку, например Отправленные. Но как их реализовать, я пока не нашел
Если знаете как, поделитесь плиз. Или если есть еще варианты, буду рад их услышать.