проблема отправки почты в Outlook'е.
От: Dizel Россия  
Дата: 13.03.04 12:01
Оценка:
При написании макроса в Outlook'е возникла следующая проблема:
Созданное письмо помещается в папку OutBox и лежит там не регагируя на нажатия Принять/отправить.
Вопрос: почему так?
Используется:
Win 2000 SP4
Outlook 2002 SP1.
Скрипт:

Dim objOneAE As AddressEntry ' single address entry in collection
Dim myPABColl As AddressEntries ' AddressEntries collection of PAB


Set MyNameSpace = Application.GetNamespace("MAPI")

Set objFolder = MyNameSpace.PickFolder
a = objFolder
Set myAddrList = MyNameSpace.AddressLists(a)
Set myPABColl = myAddrList.AddressEntries

Set myOutbox = MyNameSpace.GetDefaultFolder(olFolderOutbox)

MsgBox "Пожалуйста, выберите черновик", vbOKOnly, "Warning"

Set objFolder = MyNameSpace.PickFolder
Set MyItemDraft = objFolder.Items.Item(1)

For Each objOneAE In myPABColl
MyItemDraft.To = MyAddrEntries.Item(i)
Set myCopy = MyItemDraft.Copy
myCopy.Move myOutbox
Next objOneAE
Re: проблема отправки почты в Outlook'е.
От: Elena_ Россия  
Дата: 14.03.04 10:16
Оценка:
Здравствуйте, Dizel, Вы писали:

D>При написании макроса в Outlook'е возникла следующая проблема:

D>Созданное письмо помещается в папку OutBox и лежит там не регагируя на нажатия Принять/отправить.
D>Вопрос: почему так?

D> Set objFolder = MyNameSpace.PickFolder

D> a = objFolder
D> Set myAddrList = MyNameSpace.AddressLists(a)
D> ...
D> For Each objOneAE In myPABColl
D> MyItemDraft.To = MyAddrEntries.Item(i)
D> Set myCopy = MyItemDraft.Copy
D> myCopy.Move myOutbox
D> Next objOneAE

Если Вы в папке Исходящие посмотрите значение в столбце Отправлено, Вы увидите Нет,
это можно и через программу увидеть как
MsgBox myCopy.Sent

Аналогичная ситуация будет, если Вы просто через интерфейс перекопируете письмо из папки Черновики (или другой) в папку Исходящие.

Вместо
myCopy.Move myOutbox

используйте
myCopy.Send


Вообще, для меня загадка, что значат строки
a = objFolder
Set myAddrList = MyNameSpace.AddressLists(a)

— здесь должен быть указан индекс — число или строка, а не folder

Также в цикле
MyItemDraft.To = MyAddrEntries.Item(i)

и для чего цикл вообще
Может быть,
MyItemDraft.To = objOneAE.Address
Пользователь — друг программиста!
Re[2]: проблема отправки почты в Outlook'е.
От: Dizel Россия  
Дата: 15.03.04 06:33
Оценка:
Здравствуйте, Elena_, Вы писали:

Спасибо за отклик.

E_>Вместо

E_>
E_>myCopy.Move myOutbox
E_>

E_>используйте
E_>
E_>myCopy.Send
E_>


При такой отправке выскакивает предупреждение:"Программа пытается отправить сообщение."
Этот диалог висит около 5 сек. И потом требует нажатия кнопки ОК. Неприемлемо.
На 23 письмах уже достаточно надоедливо.
А на 100 — просто выматывает.

E_>Вообще, для меня загадка, что значат строки

E_>
E_>a = objFolder
E_>Set myAddrList = MyNameSpace.AddressLists(a)
E_>

E_> — здесь должен быть указан индекс — число или строка, а не folder

Может быть и имя папки.
Просто есть несколько произвольно названных адресных книг, имена которых заранее неизвестны.
Re[3]: проблема отправки почты в Outlook'е.
От: Left2 Украина  
Дата: 15.03.04 07:51
Оценка:
D>При такой отправке выскакивает предупреждение:"Программа пытается отправить сообщение."
D>Этот диалог висит около 5 сек. И потом требует нажатия кнопки ОК. Неприемлемо.
D>На 23 письмах уже достаточно надоедливо.
D>А на 100 — просто выматывает.

А другой отправки не бывает
Перетаскивание письма в Outbox не означает что письмо будет отослано. Ты путаешь причину и следствие — на самом деле отсылка письма (метод Send) помещает письмо в Outbox, но никак не наоборот.

А насчёт как обойти выскакивание надоедливого диалога — либо ковыряй в сторону Extanded MAPI, либо воспользуйся вот этим:

http://www.dimastr.com/redemption/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.