Выручайте братцы !!!!
Помогите кто может, горю!!!
Научите дурака! Нужно накропать макрос в Outlook который обращается к таблице екселя брал бы оттуда емейл и цыфру и автоматически отсылал цифру со стандартным текстом по взятому адрессу.
Помогите кто может, горю!!!
Помогаю :)
Макрос можно (и даже лучше) написать в самом Excel, который и будет заниматься перечисленным выше.
Создание и отправка письма:
Dim mlItem As Outlook.MailItem
Dim myAttachments As Attachments
Dim str As String, strPathToFile As String
On Error GoTo Er_
' связь с Outlook, если он не загружен, то автомат. загрузится
Set olApp = GetObject(, "Outlook.Application")
' создаем письмо
Set mlItem = olApp.CreateItem(olMailItem)
' можно его показать на экране, если хочется
mlItem.Display
' заполняем письмо
mlItem.To = "ivanov@yahoo.com"
mlItem.Subject = "Тема нашего письма"
str = Chr(13) & Chr(13) & "Отступим две строки и начнем первое предложение."
str = str & Chr(13) & "Начнем второе с новой строки."
mlItem.Body = str
' приатачим еще файл к письму:
strPathToFile = "C:\1.xls"
Set myAttachments = mlItem.Attachments
myAttachments.Add strPathToFile, olByValue, 1, "Книга1.xls"
' ну а теперь можно еще и послать его
mlItem.Send
Ex_:
Set myAttachments = Nothing
Set mlItem = Nothing
Set olApp = Nothing
Exit Sub/Function
Er_:
MsgBox Err.Description
Resume Ex_
Помогаю :)
Макрос можно (и даже лучше) написать в самом Excel, который и будет заниматься перечисленным выше.
Создание и отправка письма:
Здесь дает ошибку
User-defined type not defined :(
Здесь дает ошибку
User-defined type not defined :(
А в чём пишешь?
В VB, папример, нужно библиотеку подключить.
Если в ексел книге.книга (Письма) присутствует, то оттуда можно брать адреса получателей.
Посмотри все правильно закодено
Создание и отправка письма:
Dim olApp As Outlook.Application
Dim mlItem As Outlook.MailItem
Dim myAttachments As Attachments
Dim str As String, strPathToFile As String
Dim wx As Worksheet
Set wx = ThisWorkbook.Worksheets("Письма")
On Error GoTo Er_
Set olApp = GetObject(, "Outlook.Application")
Set mlItem = olApp.CreateItem(olMailItem)
mlItem.Display
ix = 1
While wx.Cells(ix, 1).Value <> ""
mlItem.To = wx.Cells(ix, 1).Value
mlItem.Subject = "Тема"
str = Chr(13) & Chr(13) & "текст1"
str = str & Chr(13) & "Текст2"
mlItem.Body = str
strPathToFile = "C:\1.xls"
Set myAttachments = mlItem.Attachments
myAttachments.Add strPathToFile, olByValue, 1, "Книга1.xls"
mlItem.Send
ix = ix + 1
Wend
Ex_:
Set myAttachments = Nothing
Set mlItem = Nothing
Set olApp = Nothing
Exit Sub/Function
Er_:
MsgBox Err.Description
Resume Ex_
End Sub
Насчет кода:
1. При такой массовой отсылки наверное не стоит показывать письмо , поэтому строчку mlItem.Display лучше убрать вообще - макрос просто втихоря скомпанует письма и отправит их. Можно, например, в ячейке excel выводить изменяющиеся значение скоко писем ушло, если уж очень хочется подглядывать. Да и вообще, если показывать письмо в таком коде, то лучше в самом конце кода, когда его программное формирование уже закончено, а то может получится так что пользователь вручную закроет письмо раньше чем твой макрос успеет его заполнить, весело вообщем будет :)
У меня например в базе Access есть две кнопки отпраки письма. Первая в тихую отправляет письмо, а делает тоже самое токо после заполнения показывает его на экране и никуда не отправляет - я могу кое что добавить в текст письма и уже вручную, нажав в нем кнопку "отправить" jnghdbnm письмо.
2. Теперь на счет цикла, письмо надо создавать в внутри цикла и каждый раз, потому что после отправки письма, твовая переменная будет бог знает куда показывать и у outlook такие глюки могут начаться... т.е.:
While wx.Cells(ix, 1).Value <> ""
Set mlItem = olApp.CreateItem(olMailItem)
mlItem.To = ......
..........
mlItem.Send
ix = ix + 1
Wend
3. Лучше писать не так: mlItem.To = wx.Cells(ix, 1).Value, а mlItem.To = wx.Cells(ix, 1).Text Все таки свойство .To текстовое, а в ячейки бог знает что может хранится, так что лучше себя обезопасить.
P.S. пояснения на счет атачмента: Если вы заметили то в пути я указал файл - 1.xls, а в методе .Add последним аргументом указал "Книга1.xls". Смысл здесь такой. Сам файл имеет свое название, а в письме Outlook подпись к файл может абсолютно другая, можно было вообще его обозвать просто Книга1. Этим моментом кстати часто пользуются вирусы, подпись к файлу делают ввида 1.txt, а файл на самом деле 1.exe и естественно при открыти такого файла из письма происходит не загрузка его в текстовый редактор, а запуск на выполнение.
Насчет библиотеки - действительно забыл написать, чтоб работало в Excel'e надо подключить бибилиотеку Outlook через Tools/References
Махонький нюанс:
Если вкладка Tools/references не активна, то опять OF2k переставлять :D
Махонький нюанс:
Если вкладка Tools/references не активна, то опять OF2k переставлять :D
Уп-с, пардон муа, закрыть, открыть VBA и все нормально.
SergeySV, ты попал :) , я тебя вопросами замучаю :)
Махонький нюанс:
Если вкладка Tools/references не активна, то опять OF2k переставлять :D
Да уж, совсем махонький :)
Exit Sub/Function
Syntax error :(
Exit Sub/Function
Syntax error :(
Понял, исправлюсь
Этот неодназначный код означает, что если ты весь свой код оформляешь как Sub, тогда Exit Sub, а если как Function, то писать надо Exit Function.
Ну что означает данная команду думаю по смыслу понятно.
Просто в VB нет универсального оператора выхода из функции/процедуры, а есть два специализированных:Exit Sub и Exit Function.
Exit Sub и все ОК
Но
Запуск макроса выдает
Object variable or with block variable not set
:(
Запуск макроса выдает
Object variable or with block variable not set
:(
Текс и этот вопрос отпал:
Set mlItem = olApp.CreateItem(olMailItem)
mlitem.display
и все нормально.
Но Аутлук, спрашивает "будем посылать письмо али нет, а то вдруг вирус или троян". как это можно обойти?
Текс и этот вопрос отпал:
Set mlItem = olApp.CreateItem(olMailItem)
mlitem.display
и все нормально.
Но Аутлук, спрашивает "будем посылать письмо али нет, а то вдруг вирус или троян". как это можно обойти?
Вечная тема :)
http://forum.codenet.ru/showthread.php?s=&threadid=15734&highlight=outlook
можешь поставить Outlook2000 без сервиспака2 - так такой фичи нет или просто нажать ручками один раз что даешь доступ на 10 мин.
Спасибо Вам о Великие програмеры. Если не в напряг можно весь тот же код повторить с коментариями.
Возьми комментарии из первого примера, там все подробно описано, более подробно только в справке, но тут ты уже будешь знать куда копать...
Вечная тема :)
http://forum.codenet.ru/showthread.php?s=&threadid=15734&highlight=outlook
можешь поставить Outlook2000 без сервиспака2 - так такой фичи нет или просто нажать ручками один раз что даешь доступ на 10 мин.
Иииэх. память девичья :)
А если сделать так ([шаркая ножкой]только я не знаю как это реализовать [/шаркая ножкой]) - Сгенерированное письмо положить в папку "Исходящие", в этой папке к концу работы макроса будет куча файлов на отправку, а далее тычем "получить/отправить". Так вроде попроще, ты как считаешь?
Как выглядит обращение к конкретной ячейке?
Возьми комментарии из первого примера, там все подробно описано, более подробно только в справке, но тут ты уже будешь знать куда копать...
Уже почти сделал, но редактор ругнулся на окончание сабфункции и я ещё не догнал в какой переменной хранятся мои данные, и как они туда попадают.
Иииэх. память девичья :)
А если сделать так ([шаркая ножкой]только я не знаю как это реализовать [/шаркая ножкой]) - Сгенерированное письмо положить в папку "Исходящие", в этой папке к концу работы макроса будет куча файлов на отправку, а далее тычем "получить/отправить". Так вроде попроще, ты как считаешь?
Отбой, не прилетели; @"Мери Попинс"
Порылся я хорошенько на MSDN и откапал утилитку от мелкомягких, которая позволяет настроить параметры уровня секретности в Outlook. Она конечно в первую очередь для админов почт. сервера, но и обычному пользователю позволяет пошуровать.
Качай отседа:
http://www.microsoft.com/downloads/details.aspx?familyid=f93a38cc-772d-4d5a-a527-2024351562a9&displaylang=en
Теперь что с этим богатством делать, садись по удобнее ща буду расказывать сказку по черный черный город, нет подожди, это кажись другая сказка :)
Итак:
1. Запускаем exe и указываем ей директорию (желательно пустую, чтобы с файлами не запутаться, создай ее заранее где-нибудь например в Programm Files/Microsoft Office чтоб глаза не мозолила)
2. В этой директории щелкаем по файлу OutlookSecurity.oft
3. В ответ запустится Outlook и вылезет биалог выбора папки, папки уже в самом Outlook'е. Опять же указываем ей какую-нибудь папку, лучше заранее создать специально для этого папку. В этой папке будут лежать спец. форма-сертификат с настройками уровня секретности, так что во входящие лучше небросать, а то можно случайно удалить :)
4. После выбора папки откроется сама форма. Там в принципе все достаточно понятно. Тебе в первую очередь интересует вторая вкладка - Programmatic Settings - именно на ней и скрываются все эти злобные настройки мешаюшие обычному пользователю.
5. Когда все нужные пункты поменяешь для нажми левую верхнюю кнопку - "Поместить ответ в папку" если у тебя англ. версия то немного подругому называтся будет. А зачем внизу формы кнопка - Close я так и не понял, у меня она вроде ничего не делала, ну ладно, фиг с ней и так все получилось.
Ну вот и все, теперь наливаем чашечку кофе, удобно усаживаемся в кресло и наблюдаем как пулеметной очередью идет наша рассылка из Excel.
а как указать, что бы адреес брался из таблици?
Как выглядит обращение к конкретной ячейке?
Ну это уже отдельная тема для разговора, советую почитать справку про Workbook, Worksheet и наконец Range
Например:
ThisWorkbook.Worksheets("Лист1").Range("A1").Value
или
i = 5
ThisWorkbook.Worksheets("Лист1").Range("A" & i).Value
или
iRow = 5
iCol = 3
ThisWorkbook.Worksheets("Лист1").Cells(iRow,iCol).Value
или
..... еще кучу всяких нюансов: как обращаться к объединенным ячейкам, выделенным ячейкам с не пересекающимися областями выделения (это когда чере Ctrl выделяют), ...
Отбой, не прилетели; @"Мери Попинс"
Порылся я хорошенько на MSDN и откапал утилитку от мелкомягких, которая позволяет настроить параметры уровня секретности в Outlook. Она конечно в первую очередь для админов почт. сервера, но и обычному пользователю позволяет пошуровать.
Качай отседа:
http://www.microsoft.com/downloads/details.aspx?familyid=f93a38cc-772d-4d5a-a527-2024351562a9&displaylang=en
Теперь что с этим богатством делать, садись по удобнее ща буду расказывать сказку по черный черный город, нет подожди, это кажись другая сказка :)
Итак:
1. Запускаем exe и указываем ей директорию (желательно пустую, чтобы с файлами не запутаться, создай ее заранее где-нибудь например в Programm Files/Microsoft Office чтоб глаза не мозолила)
2. В этой директории щелкаем по файлу OutlookSecurity.oft
3. В ответ запустится Outlook и вылезет биалог выбора папки, папки уже в самом Outlook'е. Опять же указываем ей какую-нибудь папку, лучше заранее создать специально для этого папку. В этой папке будут лежать спец. форма-сертификат с настройками уровня секретности, так что во входящие лучше небросать, а то можно случайно удалить :)
4. После выбора папки откроется сама форма. Там в принципе все достаточно понятно. Тебе в первую очередь интересует вторая вкладка - Programmatic Settings - именно на ней и скрываются все эти злобные настройки мешаюшие обычному пользователю.
5. Когда все нужные пункты поменяешь для нажми левую верхнюю кнопку - "Поместить ответ в папку" если у тебя англ. версия то немного подругому называтся будет. А зачем внизу формы кнопка - Close я так и не понял, у меня она вроде ничего не делала, ну ладно, фиг с ней и так все получилось.
Ну вот и все, теперь наливаем чашечку кофе, удобно усаживаемся в кресло и наблюдаем как пулеметной очередью идет наша рассылка из Excel.
Глобальное спасибо!
Нужно, что бы адреес брался автоматически из одной колонки л\документа, а содержание письма из другой. Как я не понял до сих пор, но зато врубился с отправкой вообщем, тоже спасибо.:)
Dim olApp As Outlook.Application
Dim mlItem As Outlook.MailItem
Dim myAttachments As Attachments
Dim str As String, strPathToFile As String
Dim wx As Worksheet
Dim milo As Worksheet
Set wx = ThisWorkbook.Worksheets("Письма")
Set milo = ThisWorkbook.Worksheets("Текст")
On Error GoTo Er_
' связь с Outlook, если он не загружен, то автомат. загрузится
Set olApp = GetObject(, "Outlook.Application")
' в открытой книге в листе (Письма) из первого
' столбца берем адрес
ix = 1
While wx.Cells(ix, 1).Value <> ""
Set mlItem = olApp.CreateItem(olMailItem)
' заполняем письмо
mlItem.To = wx.Cells(ix, 1).Text
mlItem.Subject = "Тема нашего письма"
mlItem.Body = milo.cells(1,1)
' приатачим еще файл к письму:
strPathToFile = "C:\1.xls"
Set myAttachments = mlItem.Attachments
myAttachments.Add strPathToFile, olByValue, 1, "Книга1.xls"
' ну а теперь можно еще и послать его
mlItem.Send
ix = ix + 1
' для контроля отправленных
wx.Cells(ix, 2).Value = "Выполнено"
Wend
Ex_:
Set myAttachments = Nothing
Set mlItem = Nothing
Set olApp = Nothing
Exit Sub
Er_:
MsgBox Err.Description
Resume Ex_
End Sub
Идея такая: на одном листе держишь адреса (лист "Письма"), а на другом (лист "Текст") в ячейке 1,1 текст.
2 SergeySV respect
Отбой, не прилетели; @"Мери Попинс"
Порылся я хорошенько на MSDN и откапал утилитку от мелкомягких, которая позволяет настроить параметры уровня секретности в Outlook. Она конечно в первую очередь для админов почт. сервера, но и обычному пользователю позволяет пошуровать.
Качай отседа:
http://www.microsoft.com/downloads/details.aspx?familyid=f93a38cc-772d-4d5a-a527-2024351562a9&displaylang=en
Теперь что с этим богатством делать, садись по удобнее ща буду расказывать сказку по черный черный город, нет подожди, это кажись другая сказка :)
Итак:
1. Запускаем exe и указываем ей директорию (желательно пустую, чтобы с файлами не запутаться, создай ее заранее где-нибудь например в Programm Files/Microsoft Office чтоб глаза не мозолила)
2. В этой директории щелкаем по файлу OutlookSecurity.oft
3. В ответ запустится Outlook и вылезет биалог выбора папки, папки уже в самом Outlook'е. Опять же указываем ей какую-нибудь папку, лучше заранее создать специально для этого папку. В этой папке будут лежать спец. форма-сертификат с настройками уровня секретности, так что во входящие лучше небросать, а то можно случайно удалить :)
4. После выбора папки откроется сама форма. Там в принципе все достаточно понятно. Тебе в первую очередь интересует вторая вкладка - Programmatic Settings - именно на ней и скрываются все эти злобные настройки мешаюшие обычному пользователю.
5. Когда все нужные пункты поменяешь для нажми левую верхнюю кнопку - "Поместить ответ в папку" если у тебя англ. версия то немного подругому называтся будет. А зачем внизу формы кнопка - Close я так и не понял, у меня она вроде ничего не делала, ну ладно, фиг с ней и так все получилось.
Ну вот и все, теперь наливаем чашечку кофе, удобно усаживаемся в кресло и наблюдаем как пулеметной очередью идет наша рассылка из Excel.
А ты сам пробовал ?
Что-то не идет у меня. :(
Отбой, не прилетели; @"Мери Попинс"
Порылся я хорошенько на MSDN и откапал утилитку от мелкомягких, которая позволяет настроить параметры уровня секретности в Outlook. Она конечно в первую очередь для админов почт. сервера, но и обычному пользователю позволяет пошуровать.
Качай отседа:
http://www.microsoft.com/downloads/details.aspx?familyid=f93a38cc-772d-4d5a-a527-2024351562a9&displaylang=en
Теперь что с этим богатством делать, садись по удобнее ща буду расказывать сказку по черный черный город, нет подожди, это кажись другая сказка :)
Итак:
1. Запускаем exe и указываем ей директорию (желательно пустую, чтобы с файлами не запутаться, создай ее заранее где-нибудь например в Programm Files/Microsoft Office чтоб глаза не мозолила)
2. В этой директории щелкаем по файлу OutlookSecurity.oft
3. В ответ запустится Outlook и вылезет биалог выбора папки, папки уже в самом Outlook'е. Опять же указываем ей какую-нибудь папку, лучше заранее создать специально для этого папку. В этой папке будут лежать спец. форма-сертификат с настройками уровня секретности, так что во входящие лучше небросать, а то можно случайно удалить :)
4. После выбора папки откроется сама форма. Там в принципе все достаточно понятно. Тебе в первую очередь интересует вторая вкладка - Programmatic Settings - именно на ней и скрываются все эти злобные настройки мешаюшие обычному пользователю.
5. Когда все нужные пункты поменяешь для нажми левую верхнюю кнопку - "Поместить ответ в папку" если у тебя англ. версия то немного подругому называтся будет. А зачем внизу формы кнопка - Close я так и не понял, у меня она вроде ничего не делала, ну ладно, фиг с ней и так все получилось.
Ну вот и все, теперь наливаем чашечку кофе, удобно усаживаемся в кресло и наблюдаем как пулеметной очередью идет наша рассылка из Excel.
А я-то думаю, откуда это ко мне пулемётными очередми спам летит?;) :D :D :D
А ты сам пробовал ?
Что-то не идет у меня. :(
Ага, у меня работает. При программной отправке письма теперь ничего не спрашивает.
Dim olApp As Outlook.Application
Dim mlItem As Outlook.MailItem
Dim myAttachments As Attachments
Dim str As String, strPathToFile As String
Dim wx As Worksheet
Dim milo As Worksheet
Set wx = ThisWorkbook.Worksheets("Письма")
Set milo = ThisWorkbook.Worksheets("Текст")
On Error GoTo Er_
' связь с Outlook, если он не загружен, то автомат. загрузится
Set olApp = GetObject(, "Outlook.Application")
' в открытой книге в листе (Письма) из первого
' столбца берем адрес
ix = 1
While wx.Cells(ix, 1).Value <> ""
Set mlItem = olApp.CreateItem(olMailItem)
' заполняем письмо
mlItem.To = wx.Cells(ix, 1).Text
mlItem.Subject = "Тема нашего письма"
mlItem.Body = milo.cells(1,1)
' приатачим еще файл к письму:
strPathToFile = "C:\1.xls"
Set myAttachments = mlItem.Attachments
myAttachments.Add strPathToFile, olByValue, 1, "Книга1.xls"
' ну а теперь можно еще и послать его
mlItem.Send
ix = ix + 1
' для контроля отправленных
wx.Cells(ix, 2).Value = "Выполнено"
Wend
Ex_:
Set myAttachments = Nothing
Set mlItem = Nothing
Set olApp = Nothing
Exit Sub
Er_:
MsgBox Err.Description
Resume Ex_
End Sub
Идея такая: на одном листе держишь адреса (лист "Письма"), а на другом (лист "Текст") в ячейке 1,1 текст.
2 SergeySV respect
Всё вроде понятно, каждая буква, но макрос не пашет. Твой вариант скопировал, назвал листі "Письма" и "Текст", подключил две аут-лукавые библиотеки в тулс\референс,а он теперь кричит, что активикс не может создать обьект.
В пошаговой отладке с места
Set olApp = GetObject(, "Outlook.Application")
сразу прыгает в обработчик ошибки.
Ага, у меня работает. При программной отправке письма теперь ничего не спрашивает.
Текс, антиресно, я для вящего любопытства, все поставила на "Automatically approve" и ничего опять тоже самое "вирус - не вирус" :(
Текс, антиресно, я для вящего любопытства, все поставила на "Automatically approve" и ничего опять тоже самое "вирус - не вирус" :(
Попробуй для начала поставить все как у меня:
На первой вкладке - Outlook Security Settings в разделе Miscellaneous Custom Form Settings поставь два радиобатона в Automatically deny
Теперь на второй вкладке - Programmatic Settings везде выбери - Automatically deny
Теперь нажми на обоих вкладках кнопку Close (может она все-таки имеет какое-то значение)
Ну и теперь закрой форму через кнопку - Поместить ответ в папку
У меня в Outlook2002 SP2 такой вариант сработал, дальше пока не экспериментировал.
Попробуй для начала поставить все как у меня:
На первой вкладке - Outlook Security Settings в разделе Miscellaneous Custom Form Settings поставь два радиобатона в Automatically deny
Теперь на второй вкладке - Programmatic Settings везде выбери - Automatically deny
Теперь нажми на обоих вкладках кнопку Close (может она все-таки имеет какое-то значение)
Ну и теперь закрой форму через кнопку - Поместить ответ в папку
У меня в Outlook2002 SP2 такой вариант сработал, дальше пока не экспериментировал.
Что-то не вижу логики, - "Автоматически нет" ?
Что-то не вижу логики, - "Автоматически нет" ?
Если все будет работать, то логика это последний несущественный аргумент который стоит рассматривать :) .... ну как там у тебя дела ?!
Если все будет работать, то логика это последний несущественный аргумент который стоит рассматривать :) .... ну как там у тебя дела ?!
Неа, сижу в микрософте, может чего нарою, еще в админские шаблоны воткнула аутлуковский шаблон(который в нагрузку шел), смотрим, но пока "вирус- не вирус". черт побери. :(
Хмм, интересно.
У тебя Ексчанга Сервер стоит?
У тебя Ексчанга Сервер стоит?
Ну он в локалке стоит, а я как обычный пользователь... всю эту байду я ставил на свой комп, без всякой поддержки администратора, т.е. он то ничего на серваке не прописывал...
я то поэтому тоже в начале думал, что это утилитка без админа с серваков работать не будет, однако ж у меня нужный эффект дала
Ну он в локалке стоит, а я как обычный пользователь... всю эту байду я ставил на свой комп, без всякой поддержки администратора, т.е. он то ничего на серваке не прописывал...
я то поэтому тоже в начале думал, что это утилитка без админа с серваков работать не будет, однако ж у меня нужный эффект дала
Q1: А может админ постарался и успел поставить?
Q2: Глупо конечно, но : а ты данным выше макросом пользовался или чем?
Q1: А может админ постарался и успел поставить?
Q2: Глупо конечно, но : а ты данным выше макросом пользовался или чем?
A1: врядли, они все больше наоборот... вирусов много ходит, а у нас глобальная адресная книга в Outlook на 4 тыс. человек, сама понимаешь что может начаться если нынешние почтовые черви попадут.
A2: я использовал свою базу, там outlook цепляется не просто как Get/CreateObject а как класс с WithEvents, чтобы можно было еще отслеживать приход новой почты, но сообщения о подозрительных программах...
кстати, ну ка по подробнее, а как она у тебя ругается? при программной отправке она должна ругаться типа: "Неизвестная программа пытается получить доступ к адресной книге" или "Неизвестная программ пытается отправить через outlook письмо" - именно такие сообщения и убирает этот шаблон.
А на счет "вирусов...." это скорей всего у тебя общий уровень безопасности высокий. У меня ща в Outlook стоит - Средняя.
A1: врядли, они все больше наоборот... вирусов много ходит, а у нас глобальная адресная книга в Outlook на 4 тыс. человек, сама понимаешь что может начаться если нынешние почтовые черви попадут.
A2: я использовал свою базу, там outlook цепляется не просто как Get/CreateObject а как класс с WithEvents, чтобы можно было еще отслеживать приход новой почты, но сообщения о подозрительных программах...
кстати, ну ка по подробнее, а как она у тебя ругается? при программной отправке она должна ругаться типа: "Неизвестная программа пытается получить доступ к адресной книге" или "Неизвестная программ пытается отправить через outlook письмо" - именно такие сообщения и убирает этот шаблон.
А на счет "вирусов...." это скорей всего у тебя общий уровень безопасности высокий. У меня ща в Outlook стоит - Средняя.
Окошко
Программа пытается автоматически оптравить сообщение от вашего имени.
Разрешить эту операцию?
Если это неожиданное событие, оно может быть связано с наличием вируса, и следует выбрать ответ "нет"
кнопулька "да" появляется через 5 сек.
Безопасность (если разговор про макросы) - низкая