Страница: 1 |
Вопрос: Отправка e-mail из VBA | Добавлено: 24.08.06 11:34 |
Автор вопроса: ![]() |
Подскажите, пожалуйста!
Как можно создать сообщение (адрес, тема, текст письма) без прикрепления книги? Пробовал так: Application.Dialogs(xlDialogSendMail).Show arg1:="e@mail.ru", arg2:="Тема" но при вызове диалога автоматом прикрепляется книга ActiveWorkbook.SendMail тоже не подходит |
Ответы | Всего ответов: 11 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() Вопросов: 7 Ответов: 188 |
Профиль | Цитата | #1 | Добавлено: 24.08.06 15:56 |
Public Declare Function ShellExecute& Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) Sub SendMail() Call ShellExecute(0&, "Open", "mailto:" & "address@mail.ru" & "?Subject=" & "Это тема письма" & "&Body=" & "Это текст в теле письма", "", "", 1) End Sub |
Номер ответа: 2 Автор ответа: ![]() ![]() Вопросов: 7 Ответов: 11 |
Профиль | Цитата | #2 | Добавлено: 24.08.06 16:38 |
Супер! Работает! Письмо формируется, тока какая-то хрень с кодировкой (кирилица). Как это побороть? |
Номер ответа: 3 Автор ответа: ![]() ![]() ICQ: 234458121 Вопросов: 38 Ответов: 107 |
Профиль | Цитата | #3 | Добавлено: 29.08.06 12:42 |
А у меня не работает. Может, я что-то не так делаю. Разместил указанный код в модуле. При вызове макроса ничего не происходит, ошибки не выдаются. У меня установлен MS Office 2003 SP1. |
Номер ответа: 4 Автор ответа: ![]() ![]() ICQ: 234458121 Вопросов: 38 Ответов: 107 |
Профиль | Цитата | #4 | Добавлено: 21.09.06 17:20 |
Вот незадача, и никто не может подсказать. Дома работает, на работе нет. Офис ставили с одного дистриба.
Нашел другой способ отправки email: Sub MailButton_Click()
Dim objOL As New Outlook.Application Dim objMail As MailItem Dim ToMail, Subject, Body As String ToMail = Cells(1, 6).Value Subject = Cells(2, 6).Value Body = Cells(3, 6).Value Set objOL = New Outlook.Application Set objMail = objOL.CreateItem(olMailItem) With objMail .To = ToMail .Body = Body .Subject = Subject .Display End With Set objMail = Nothing Set objOL = Nothing Next End Sub И вот возник вопрос: как сделать, чтобы сообщение сразу уходило? Так оно открывается и ждет команды отправить. Как прикрепить к сообщению файл? |
Номер ответа: 5 Автор ответа: ![]() ![]() ICQ: 234458121 Вопросов: 38 Ответов: 107 |
Профиль | Цитата | #5 | Добавлено: 21.09.06 20:31 |
Как прикрепить любой файл сделал.
Надо только добавить код: Sub SendMailButton_Click()
Dim objOL As New Outlook.Application Dim objMail As MailItem Dim objAttach As Outlook.Attachments Set objOL = New Outlook.Application Set objMail = objOL.CreateItem(olMailItem) Set objAttach = objMail.Attachments With objMail .To = "mail@mail.ru" .Body = "Это текст тестового письма, отправленного средствами VBA" .Subject = "Тема" .Display End With objAttach.Add ("Полный путь к файлу" ![]() Set objMail = Nothing Set objOL = Nothing Set objAttach = Nothing End Sub |
Номер ответа: 6 Автор ответа: ![]() ![]() ICQ: 234458121 Вопросов: 38 Ответов: 107 |
Профиль | Цитата | #6 | Добавлено: 21.09.06 20:39 |
Ну и наконец дошло дело до отправки.
Sub SendMailButton_Click()
Dim objOL As New Outlook.Application Dim objMail As MailItem Dim objAttach As Outlook.Attachments Set objOL = New Outlook.Application Set objMail = objOL.CreateItem(olMailItem) Set objAttach = objMail.Attachments objAttach.Add ("Полный путь к файлу" ![]() With objMail .To = "mail@mail.ru" .Body = "Это текст тестового письма, отправленного средствами VBA" .Subject = "Тема" .Display .Send End With Set objMail = Nothing Set objOL = Nothing Set objAttach = Nothing End Sub Но Outlook делает одну гадость: Программа пытается отправить сообщение с помощью команды Item.Send
Программа пытается автоматически отправить сообщение электронной почты с помощью команды Item.Send языка Microsoft Visual Basic Application (VBA) из Microsoft Outlook. Чтобы разрешить программе отправку сообщения, нажмите кнопку Да. Чтобы остановить программу, нажмите кнопку Нет. Примечание. Кнопка Да недоступна в течение первых пяти секунд после отображения сообщения. QUOTE] И все равно приходиться нажимать кнопку, да еще ждать 5 секунд. Нужен выход... Думаю при таком способе отправки почты, его не найти!!! |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() Вопросов: 7 Ответов: 188 |
Профиль | Цитата | #7 | Добавлено: 22.09.06 07:53 |
Этому посвящено достаточно большое количество информации. Смотри в инете. Если Офис 2000 без сервис паков - то таких проблем нет. А вот уже на чиная с первого сервис пака для 2000 (не говоря уже о более поздних версиях офиса) Майкрософт стала заботится о нас и включать эту бяку - дабы уберечь нас всех от вирусов и спама. Сделали они это вроде как на совесть - а посему обойти её я лично не нашел нормального способа - делаю подготовку письма к отправке - перехватываю окошко и програмно жму отправить... что есть криво! Специально купил книжку по аутлук и вычитал что есть специальная примочка от Майкрософта, которую могут поставить товарисчи с правами админов - где настраивается - кто может нормально программно отправлять письма без этих заботливых запросов и 5 секундных ожиданий. На работе пользуюсь офисом 2000 без сервис паков а посему ваще не сталкиваюсь с этой проблемой. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 2 |
Профиль | Цитата | #8 | Добавлено: 08.11.06 10:53 |
Когда я пытался запустить нечто подобное, на третью строчку мне сказали Can't find project or library. Я так понимаю, что проблема в библиотеках. Что для этой процедуры нужно, кроме Microsoft Outlook 11.0 Object Library? |
Номер ответа: 9 Автор ответа: ![]() ![]() ICQ: 234458121 Вопросов: 38 Ответов: 107 |
Профиль | Цитата | #9 | Добавлено: 09.11.06 23:16 |
Да вроде ничего не нужно. У меня больше ничего не подключено. |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 2 |
Профиль | Цитата | #10 | Добавлено: 10.11.06 10:45 |
Я понял, в чем фишка. После отключения библиотеки Microsoft Office 11.0 (как-то так называется) все работает. |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() Вопросов: 1 Ответов: 2 |
Web-сайт: Профиль | Цитата | #11 | Добавлено: 13.08.08 13:15 |
А без Аутлук через SNMP Это делать кто-нибудь умеет? |
Страница: 1 |
|