VBA -> Outlook 2003 -> Получение SMTP-адреса с использованием CDO -> WARNING
Формулировка задачи:
Наваял такую функцию:
Всё замечательно работает, но при обращении к объекту Sender возникает сообщение: "Программа пытается получить доступ к адресам электронной почты, хранящимся в Outlook. Разрешить это действие?". И такое повторяется каждый раз при запуске функции. Как предотвратить появление этого сообщения? Проект VBA подписан цифровой подписью, все требования безопасности соблюдены.. Что где подкрутить/прижечь?
Всё замечательно работает, но при обращении к объекту Sender возникает сообщение: "Программа пытается получить доступ к адресам электронной почты, хранящимся в Outlook. Разрешить это действие?". И такое повторяется каждый раз при запуске функции. Как предотвратить появление этого сообщения? Проект VBA подписан цифровой подписью, все требования безопасности соблюдены.. Что где подкрутить/прижечь?
Решение задачи: «VBA -> Outlook 2003 -> Получение SMTP-адреса с использованием CDO -> WARNING»
textual
Листинг программы
<font color="blue">Private</font> <font color="blue">Sub</font> TestRDO() <font color="blue">Const</font> PR_SMTP_ADDRESS = &H39FE001E <font color="blue">Const</font> PR_EMS_AB_PROXY_ADDRESSES = &H800F101E <font color="blue">Dim</font> olMail <font color="blue">As</font> <font color="blue">Object</font> <font color="blue">Dim</font> objSession <font color="blue">As</font> RDOSession <font color="blue">Dim</font> objMessage <font color="blue">As</font> RDOMail <font color="blue">Dim</font> FlagVal <font color="blue">As</font> <font color="blue">String</font> <font color="blue">Set</font> objSession = CreateObject(<font color="teal">"Redemption.RDOSession"</font>) objSession.MAPIOBJECT = Application.Session.MAPIOBJECT <font color="blue">For</font> <font color="blue">Each</font> olMail <font color="blue">In</font> Application.ActiveExplorer.Selection <font color="blue">If</font> LCase(TypeName(olMail)) = <font color="teal">"mailitem"</font> <font color="blue">Then</font> <font color="blue">Set</font> objMessage = objSession.GetMessageFromID(olMail.EntryID) Debug.<font color="blue">Print</font> (objMessage.Subject) FlagVal = <font color="teal">""</font> <font color="blue">If</font> LCase(objMessage.Sender.<font color="blue">Type</font>) = <font color="teal">"smtp"</font> <font color="blue">Then</font> FlagVal = objMessage.Sender.Address <font color="blue">Else</font> FlagVal = objMessage.Sender.Fields(PR_SMTP_ADDRESS) <font color="blue">If</font> FlagVal = <font color="teal">""</font> <font color="blue">Then</font> FlagVal = objMessage.Sender.Fields(PR_EMS_AB_PROXY_ADDRESSES) <font color="blue">End</font> <font color="blue">If</font> Debug.<font color="blue">Print</font> (FlagVal) <font color="blue">End</font> <font color="blue">If</font> <font color="blue">Next</font> <font color="blue">End</font> <font color="blue">Sub</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д